函数

php定义函数时,以function开头,后面是函数名和参数列表,下面是一个例子。

<?php
function foo($arg1, $arg2)
{
    return $arg1 + $arg2;
}

echo foo(1, 2);

?>

值传递和引用传递

之前讲过&赋值运算符,可以将一个变量的引用赋值给另一个变量,这和C++的引用特性很像。但是,函数定义参数时,实际上默认只会传递类实例的指针(也是值传递),而C++还要在定义函数参数时加上引用符号。php的这种特性很让人迷糊,实际上php5以后,真正保存对象的结构是zend_object,它只保存类的指针,这样对象作为函数参数看上去像是“引用传递”。这种情况只有类才有,包括数组在内,其他类型都不会发生这种情况。

<?php

class A
{
    public $name;
}

function foo($arg)
{
    $arg->name = "B";
}

$a = new A();
$a->name = "A";
foo($a);

echo $a->name;

?>

上面代码输出如下。

B

数组使用引用传递示例代码(对于其他类型也是一样的)

<?php

$arr = array("aaa");

function foo(&$arg)
{
    array_push($arg, "bbb");
}

foo($arr);

echo count($arr);

?>

上面代码输出如下。

2

调用其他文件的函数或类

通常为了代码可读性,函数、类会分模块,划分到不同文件。文件之间互相引用可以使用includerequire。其原理实际就是将两个文件的代码合并执行。

<?php
function foo()
{
    echo "aaa";
}
?>
<?php
include 'test.php';
foo();
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。