배열 요소를 동적 함수 이름으로 취하는 PHP5와 PHP7의 차이점
PHP5와 PHP7에서는 변수를 통해 함수/메서드 이름을 얻어 함수/메서드를 실행할 때 서로 다른 해석 전략으로 인해 동일한 코드가 작동하지 않을 수 있습니다. 버전을 실행합니다.
Example
$a = ['add', 'sub']; class Test { public function add() { echo 1 + 2; } } $t = new Test(); $t->$a[0]();
위 예제는 PHP5.6에서는 정상적으로 실행될 수 있지만 PHP7에서는 Fatal error: Function name must be a string이 발생합니다. 이는 PHP5에서 t->t−>a0을 실행하면 $a[0]이 먼저 실행되어 요소 값을 얻은 다음 개체의 특정 메서드가 실행되기 때문입니다.
PHP7에서는 t->t−>a가 먼저 실행되어 오류가 발생하고 실행이 중단됩니다. PHP7에서 정상적으로 실행하려면 t->{a[0]}()로 수정해야 합니다.
구체적인 차이점은 다음을 참조하세요.
권장 학습: "PHP7 Tutorial"
위 내용은 get 함수에 관한 PHP5와 PHP7의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!