> 백엔드 개발 > PHP 튜토리얼 > call_user_func는 공식 PHP 웹사이트에서도 호출되는 경고를 보고합니다. .

call_user_func는 공식 PHP 웹사이트에서도 호출되는 경고를 보고합니다. .

WBOY
풀어 주다: 2016-09-19 09:16:31
원래의
1098명이 탐색했습니다.

HPcall_user_func는 공식 PHP 웹사이트에서도 호출되는 경고를 보고합니다. .

call_user_func는 공식 PHP 웹사이트에서도 호출되는 경고를 보고합니다. .

답글 내용:

HPcall_user_func는 공식 PHP 웹사이트에서도 호출되는 경고를 보고합니다. .

call_user_func는 공식 PHP 웹사이트에서도 호출되는 경고를 보고합니다. .

<code class="php">class Father {
    public function __construct() {
        echo "father<br>";
    }
}

class Child extends Father {
    public function say() {
        echo "hello";
    }

    static function say2() {
        echo "hello2";
    }
}

// 调用对象方法需要先实例化对象
$child = new Child;
call_user_func([$child, 'say']);

// 可以直接调用类静态方法
call_user_func(['child', 'say2']);</code>
로그인 후 복사

객체 메소드를 삭제하기 위해 클래스 정적 메소드를 직접 호출하는 것은 잘못된 작성 방식입니다. PHP5.5 이전에는 (아마도) 요구 사항을 충족하기 위해 최선을 다한 후 경고를 보고했지만, 5.5 이후에는 오류입니다.

call_user_func 메서드를 사용하면 클래스의 함수를 사용하므로 인스턴스화해야 합니다. 메서드로 직접 작성하는 경우에만 다음과 같이 작성할 수 있습니다.

<code>function develop($val){
    if($val){
        echo 'Successful';
    } else {
        echo 'Fail';
    }
}

call_user_func('develop', true);</code>
로그인 후 복사

정적 메소드를 호출하는 방식으로 작성해야 합니다
인스턴스 메소드를 호출하려면
클래스를 인스턴스화해야 합니다

엄격 모드, PHP 버전에 주의하세요.

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿