get 함수에 관한 PHP5와 PHP7의 차이점

藏色散人
풀어 주다: 2023-02-18 08:44:01
앞으로
1689명이 탐색했습니다.

배열 요소를 동적 함수 이름으로 취하는 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]}()로 수정해야 합니다.

구체적인 차이점은 다음을 참조하세요.

get 함수에 관한 PHP5와 PHP7의 차이점

권장 학습: "PHP7 Tutorial"

위 내용은 get 함수에 관한 PHP5와 PHP7의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:juejin.im
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!