php 函数参数引用和普通变量 传参区别

function func($b) {

xdebug_debug_zval('b');//refcount 3 不明白等于3 是不是其中哪里引用 应该是2

debug_zval_dump($b);//refcount 4 函数本身 增加了一个 引用计数

}

$b = 1;

func($b);//未对参数进行拷贝分离操作 因为参数要求和实际传递一致 在函数里面实际写操作时 才进行拷贝分离


$a = &b;

func($b); //次数会进行 拷贝分离 因为 $b已经是引用类型。。而函数要求是值类型。。防止函数里面 修改了外部变量 在函数调用时就进行拷贝分离。。这样在一些实际应用时,,如果这个参数很大 数组。。则会消耗时间很大

函数传参相当于赋值过程



$c='123';

strlen($c);//复杂度 O(1) 因为 字符串存储了长度 和 C语言不同 (C语言复杂度O(n))


php 返回引用的函数 注意在调用和声明的时候都需要加上&

你可能感兴趣的:(php 函数参数引用和普通变量 传参区别)