PHP 函数详解

PHP 的真正力量来自它的函数:它拥有超过 1000 个内建的函数。

PHP 用户定义函数

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

函数是可以在程序中重复使用的语句块。

页面加载时函数不会立即执行。

函数只有在被调用时才会执行。

在 PHP 创建用户定义函数

用户定义的函数声明以关单 \”function\” 开头:

语法

function functionName() {

被执行的代码;

}

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

注释:函数名对大小写不敏感。

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

在下面的例子中,我们创建名为 \”writeMsg()\” 的函数。打开的花括号({)指示函数代码的开始,而关闭的花括号(})指示函数的结束。此函数输出 \”Hello world!\”。如需调用该函数,只要使用函数名即可:

实例

<?php

function writeMsg() {

echo \”Hello world!\”;

}

writeMsg(); // 调用函数?>

PHP 函数参数

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

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

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

实例

<?php

function familyName($fname) {

echo \”$fname Zhang.<br>\”;

}

familyName(\”Li\”);

familyName(\”Hong\”);

familyName(\”Tao\”);

familyName(\”Xiao Mei\”);

familyName(\”Jian\”);

?>

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

实例

<?php

function familyName($fname,$year) {

echo \”$fname Zhang. Born in $year <br>\”;

}

familyName(\”Li\”,\”1975\”);

familyName(\”Hong\”,\”1978\”);

familyName(\”Tao\”,\”1983\”);

?>

PHP 默认参数值

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

实例

<?php

function setHeight($minheight=50) {

echo \”The height is : $minheight <br>\”;

}

setHeight(350);

setHeight(); // 将使用默认值 50setHeight(135);

setHeight(80);

?>

PHP 函数 – 返回值

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

实例

<?php

function sum($x,$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);

?>

array_key_exists 与 isset 的比较

在 PHP 中,array_key_exists 和 isset 都可以用来判断数组中的某个键是否存在,但它们在某些情况下表现不同。以下是它们的主要区别和适用场景:

  • 功能:检查变量是否已设置并且不是 null。
  • 优点:性能较好,通常比 array_key_exists 更快。可以同时检查多个变量。
  • 缺点:如果数组键存在但值为 null,isset 会返回 false。不能用于检查对象属性是否存在(除非属性值不是 null)。
  • 功能:检查数组中是否存在指定的键。
  • 优点:即使数组键存在且值为 null,也会返回 true。专门用于检查数组键的存在性,语义更明确。
  • 缺点:性能略低于 isset。
  • 使用 isset
    • 当你需要检查数组键是否存在且其值不是 null 时。
    • 当性能是关键因素时。
  • 使用 array_key_exists
    • 当你需要严格检查数组键是否存在,即使其值为 null 时。
    • 当你希望代码的意图更加明确时。
  • 如果你只需要检查数组键是否存在且不关心其值是否为 null,推荐使用 isset,因为它性能更好。
  • 如果你需要严格检查数组键是否存在,即使其值为 null,推荐使用 array_key_exists,因为它语义更明确。

根据你的具体需求选择合适的方法。

PHP判断是否为空的5种方法

  1. isset()功能:判断变量是否被初始化

说明:它并不会判断变量是否为空,可以用来判断数组中元素是否被定义过。

l另外需要注意的是:当使用isset()来判断数组元素是否被初始化过时,它的效率比 array_key_exists() 高4倍左右。

  1. empty()功能:检测变量是否为”空”

说明:任何一个未初始化的变量、值为 0 或 false 或 空字符串\”\” 或 null的变量、空数组、没有任何属性的对象, empty(变量) == true。

注意1:未初始化的变量也能被empty检测为”空”。

注意2:empty只能检测变量,而不能检测语句。

  1. var == null功能:判断变量是否为”空”

说明:值为 0 或 false 或 空字符串”” 或 null的变量、空数组、都将判断为 null。

注意:与empty的显著不同就是:变量未初始化时 var == null 将会报错。

  1. is_null功能:检测变量是否为”null”

说明:当变量被赋值为”null”时,检测结果为true。

注意1:null不区分大小写:$a = null; $a = NULL 没有任何区别。

注意2:仅在变量的值为”null”时,检测结果才为true,0、空字符串、false、空数组都检测为false。

注意3:变量未初始化时,程序将会报错。

  1. var === null功能:检测变量是否为”null”,同时变量的类型也必须是”null”

说明:当变量被赋值为”null”时,同时变量的类型也是”null”时,检测结果为true。

注意1:在判断为”null”上,全等于和is_null的作用相同。

注意2:变量未初始化时,程序将会报错。

总结:

PHP中,”NULL” 和 “空” 是2个概念。

isset 主要用来判断变量是否被初始化过。

empty 可以将值为 “假”、”空”、”0″、”NULL”、”未初始化” 的变量都判断为TRUE。

is_null 仅把值为 “NULL” 的变量判断为TRUE。

var == null 把值为 “假”、”空”、”0″、”NULL” 的变量都判断为TRUE。

var === null 仅把值为 “NULL” 的变量判断为TRUE。

注意:在判断一个变量是否真正为”NULL”时,大多使用 is_null,从而避免”false”、”0″等值的干扰。

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。