변수 전달과 참조 전달의 차이점
<code><span>$num</span> = <span>0</span>; <span><span>function</span><span>test0</span><span>(<span>$num</span>)</span>{</span><span>//将变量的值副本传进去,而不是变量本身。</span><span>$num</span> = <span>123</span>; <span>echo</span><span>$num</span>; } test0(<span>$num</span>);<span>//输出:123</span><span>echo</span><span>$num</span>; <span>//输出:0</span><span>$num2</span> = <span>100</span>; <span><span>function</span><span>test1</span><span>(&<span>$val</span>)</span>{</span><span>//传变量地址,操作的是变量本身</span><span>$val</span> = <span>300</span>; <span>echo</span><span>$val</span>; } test1(<span>$num2</span>);<span>//输出:300</span><span>echo</span><span>$num2</span>; <span>//输出:300</span></code>
변수 함수, 즉 함수 이름이 변수
<code><span>$temp</span> = <span>"king"</span>; <span>$name</span> = <span>"md5"</span>; <span>echo</span><span>$name</span>(<span>$temp</span>);<span>//调用md5方法,将king转成md5 </span></code>
콜백 함수인 것과 같은 참조를 전달하지만 이는 다음을 통해 구현됩니다. 시스템에서는 call_user_func()와 call_user_func_array()의 두 가지 메서드를 제공합니다. 둘의 차이점은 전자의 매개변수가 하나씩 전달되는 반면 후자의 매개변수는 다음과 같은 형식으로 전달된다는 점입니다. 배열. 예는 다음과 같습니다.
<code><span><span>function</span><span>sayName</span><span>(<span>$val</span>)</span>{</span><span>echo</span><span>"My name is {$val}"</span>; } <span><span>function</span><span>doWhat</span><span>(<span>$myFunction</span>,<span>$name</span>)</span>{</span><span>$myFunction</span>(<span>$name</span>); } <span>$name</span> = <span>"King"</span>; doWhat(<span>"sayName"</span>,<span>$name</span>);<span>//输出:My name is King.</span></code>
저작권 표시: 이 기사는 원본 기사이며, 기사의 견해는 당시의 견해만을 나타냅니다. 단점이군요. 매우 중요합니다.
위 내용은 PHP 학습 Notes_function 유형을 내용의 측면을 포함하여 소개한 내용으로, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.