php函数按地址传递参数(php引用)
一、总结
1、php引用:php引用和c++一样,都是在变量前加&(取地址符号)
2、php函数按地址传递参数:php函数按地址传递参数(php引用)也和c++一模一样,都是在函数的形参前面加上&
3、php语法:php的超多语法和c++一样,不熟悉的位置用C++试试就好
二、PHP 函数的引用传递(地址传递&)问题
PHP 中的引用
在PHP 中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字。在 PHP 中引用意味着用不同的名字访问同一个变量内容。最接近的比喻是 Unix 的文件名和文件本身——变量名是目录条目,而变量内容则是文件本身。引用可以被看作是 Unix 文件系统中的 hardlink。
举个例子:
- $a = "nowamagic";
- $b =& $a;
- echo $b.$a;
这意味着 $a 和 $b 指向了同一个变量。同一个变量内容有不同的变量名,引用就是这么个回事。
函数的引用传递(传址调用):
我们先来一个函数引用传递问题:
- function test(&$a)
- {
- $a = $a+100;
- }
- $b = 1;
- test($b);
- echo $b;
答案是 101 ;
函数 test() 直接拿变量的地址作为参数……然后将变量的值+100. test($b) 这里$b传递给函数的其实是$b的变量内容所处的内存地址,通过在函数里改变$a的值就可以改变$b的值了。