>  기사  >  백엔드 개발  >  call_user_func_array 호출 인스턴스

call_user_func_array 호출 인스턴스

巴扎黑
巴扎黑원래의
2016-11-23 14:09:011293검색

특정 클래스 파일을 가져오고 클래스 파일을 호출하려는 경우 call_user_func_array 함수를 사용하세요. 다음은 다양한 매개변수에 따른 두 가지 예입니다.

<?php    
$func = function($arg1, $arg2) {    
return $arg1 * $arg2;    
};    
var_dump(call_user_func_array($func, array(2, 4))); /* As of PHP 5.0 */    
?>

는 다음을 출력합니다. >

int(8) [1]‍

<?    
Class ClassA    
{    
    
function bc($b, $c) {    
     $bc = $b + $c;    
echo $bc;    
}    
}    
call_user_func_array(array(&#39;ClassA&#39;,&#39;bc&#39;), array("111", "222"));    
    
//显示 333    
?>

첫 번째 매개변수: 클래스 이름, 함수. 두 번째 함수: 매개변수 전달

어떤 상황에서 call_user_func_array 함수가 사용되나요? 특정 함수를 호출할 때 new로 직접 호출하면 되지 않나요?

call_user_func_array와 새 클래스 이름의 차이점은 all_user_func_array의 첫 번째 매개변수가 array('클래스 이름', '메소드 이름')인 경우 시스템이 자동으로 클래스에 대한 객체를 생성하여 클래스에 직접 액세스할 수 있다는 것입니다. 그러나 __construct 생성자 메서드는 실행되지 않습니다. 이는 정적 메서드 클래스 이름::함수 이름(매개 변수) 호출을 호출하는 것과 동일하며, 새 클래스 이름이 사용되면 생성자가 먼저 실행됩니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.