轻松上手,快乐学习!

PHP 教程

PHP 教程PHP 简介PHP 下载安装PHP 语法PHP 注释PHP 变量PHP Echo / PrintPHP 数据类型PHP 字符串PHP 数值PHP MathPHP 常量PHP 运算符PHP If...ElsePHP SwitchPHP 循环While 循环Do While 循环For 循环Foreach 循环Break/ContinuePHP 函数PHP 数组索引数组关联数组多维数组数组排序PHP 全局变量$GLOBALS$_SERVER$_REQUEST$_POST$_GETPHP 正则表达式PHP 表单处理PHP 表单验证PHP 表单验证必填字段PHP 表单验证URL/E-mailPHP 表单验证实例PHP 日期和时间PHP IncludePHP 文件处理PHP 文件打开/读取PHP 文件创建/写入PHP 文件上传PHP CookiesPHP SessionsPHP FiltersPHP Filters AdvancedPHP 回调函数PHP JSONPHP 异常处理PHP 什么是 OOPPHP 类和对象PHP 构造函数PHP 析构函数PHP 访问修饰符PHP 继承PHP 类常量PHP 抽象类PHP 接口PHP 特征PHP 静态方法PHP 静态属性PHP 命名空间PHP 可迭代对象MySQL DatabaseMySQL ConnectMySQL Create DBMySQL Create TableMySQL Insert DataMySQL Get Last IDMySQL Insert MultipleMySQL PreparedMySQL Select DataMySQL WhereMySQL Order ByMySQL Delete DataMySQL Update DataMySQL Limit DataPHP XML ParsersPHP SimpleXML ParserPHP SimpleXML - GetPHP XML ExpatPHP XML DOMAJAX IntroAJAX PHPAJAX DatabaseAJAX XMLAJAX Live SearchAJAX PollPHP 实例PHP 编译器PHP 测验PHP 练习

PHP 参考手册

PHP 概述PHP ArrayPHP CalendarPHP DatePHP DirectoryPHP ErrorPHP ExceptionPHP FilesystemPHP FilterPHP FTPPHP JSONPHP KeywordsPHP LibxmlPHP MailPHP MathPHP MiscPHP MySQLiPHP NetworkPHP Output ControlPHP RegExPHP SimpleXMLPHP StreamPHP StringPHP Variable HandlingPHP XML ParserPHP ZipPHP Timezones


PHP 函数


PHP 的真正力量来自它的函数

PHP 有1000多个内置函数,此外,您还可以创建自己的自定义函数。


PHP 内建函数

PHP 有1000多个内置函数,可以从脚本中直接调用这些函数来执行特定任务。

有关 PHP 内置函数 的完整概述,请查看我们的PHP参考资料。


PHP 用户定义函数

除了内建的 PHP 函数,我们可以创建我们自己的函数。

  • 函数是可以在程序中重复使用的语句块。
  • 页面加载时函数不会立即执行。
  • 函数只有在被调用时才会执行。

在 PHP 创建用户定义函数

用户定义的函数声明以单词 function 开头:

语法

function functionName() {
  code to be executed;
}

注释: 函数名能够以字母或下划线开头(而非数字)。

提示: 函数名应该能够反映函数所执行的任务。

在下面的示例中,我们创建了一个名为 "writeMsg()" 的函数。开始的大括号({)表示函数代码的开始,结束的大括号(})表示函数的结束。函数输出 "Hello world!"。要调用该函数,只需将其名称后跟括号 ():

实例

<?php
function writeMsg() {
  echo "Hello world!";
}

writeMsg(); // call the function
?>
亲自试一试 »

PHP 函数参数

可以通过参数向函数传递信息。参数类似变量。

参数被定义在函数名之后,括号内部。您可以添加任意多参数,只要用逗号隔开即可。

下面的例子中的函数有一个参数($fname)。当调用 familyName() 函数时,我们同时要传递一个名字(例如 Jani),这样会输出不同的名字,但是姓氏相同:

实例

<?php
function familyName($fname) {
  echo "$fname Refsnes.<br>";
}

familyName("Jani");
familyName("Hege");
familyName("Stale");
familyName("Kai Jim");
familyName("Borge");
?>
亲自试一试 »

下面的例子中的函数有两个参数($fname 和 $year):

实例

<?php
function familyName($fname, $year) {
  echo "$fname Refsnes. Born in $year <br>";
}

familyName("Hege", "1975");
familyName("Stale", "1978");
familyName("Kai Jim", "1983");
?>
亲自试一试 »

PHP 是一门弱类型语言

在上面的实例中,我们注意到,不必向 PHP 声明该变量的数据类型。

PHP 会根据变量的值,自动把变量转换为正确的数据类型。由于数据类型不是严格意义上的设置,因此可以在不导致错误的情况下执行向整数添加字符串之类的操作。

在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。

在 PHP 7 中,添加了类型声明。这提供了一个选项来指定声明函数时所需的数据类型,通过启用严格要求,它将在类型不匹配时抛出 "致命错误" 。

在以下示例中,我们尝试在不使用 strict 的情况下向函数发送数字和字符串:

实例

<?php
function addNumbers(int $a, int $b) {
  return $a + $b;
}
echo addNumbers(5, "5 days");
// since strict is NOT enabled "5 days" is changed to int(5), and it will return 10
?>
亲自试一试 »

要指定 strict,我们需要设置 declare(strict_types=1);。这必须在 PHP 文件的第一行。

在下面的示例中,我们尝试向函数发送数字和字符串,但在这里我们添加了严格( strict )声明:

实例

<?php declare(strict_types=1); // strict requirement

function addNumbers(int $a, int $b) {
  return $a + $b;
}
echo addNumbers(5, "5 days");
// since strict is enabled and "5 days" is not an integer, an error will be thrown
?>
亲自试一试 »

严格( strict)的声明迫使事物按预期的方式使用。


PHP 默认参数值

下面的例子展示了如何使用默认参数。如果我们调用没有参数的 setHeight() 函数,它的参数会取默认值:

实例

<?php declare(strict_types=1); // strict requirement
function setHeight(int $minheight = 50) {
  echo "The height is : $minheight <br>";
}

setHeight(350);
setHeight(); // will use the default value of 50
setHeight(135);
setHeight(80);
?>
亲自试一试 »

PHP 函数 - 返回值

如需使函数返回值,请使用 return 语句:

实例

<?php declare(strict_types=1); // strict requirement
function sum(int $x, int $y) {
  $z = $x + $y;
  return $z;
}

echo "5 + 10 = " . sum(5, 10) . "<br>";
echo "7 + 13 = " . sum(7, 13) . "<br>";
echo "2 + 4 = " . sum(2, 4);
?>
亲自试一试 »

PHP 返回类型声明

PHP 7 还支持 return 语句的类型声明。与函数参数的类型声明一样,通过启用严格要求,它将在类型不匹配时抛出"致命错误"。

要声明函数 return 的类型,请在声明函数时在开头的花括号 ( { ) 之前添加冒号 (: ) 和类型。

在以下示例中,我们指定函数的返回类型:

实例

<?php declare(strict_types=1); // strict requirement
function addNumbers(float $a, float $b) : float {
  return $a + $b;
}
echo addNumbers(1.2, 5.2);
?>
亲自试一试 »

您可以指定不同于参数类型的返回类型,但请确保返回的类型正确:

实例

<?php declare(strict_types=1); // strict requirement
function addNumbers(float $a, float $b) : int {
  return (int)($a + $b);
}
echo addNumbers(1.2, 5.2);
?>
亲自试一试 »

通过引用传递参数

在 PHP 中,参数通常按值传递,这意味着函数中使用了值的副本,并且传递到函数中的变量不能更改。

通过引用传递函数参数时,对参数的更改也会更改传入的变量。要将函数参数转换为引用,请使用 & 运算符:

实例

使用通过引用传递参数 (pass-by-reference) 更新变量:

<?php
function add_five(&$value) {
  $value += 5;
}

$num = 2;
add_five($num);
echo $num;
?>
亲自试一试 »

PHP 实验

学习训练

练习题:

创建一个名为 myFunction 的函数。

 {
  echo "Hello World!";
}