>백엔드 개발 >PHP7 >get 함수에 관한 PHP5와 PHP7의 차이점

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

藏色散人
藏色散人앞으로
2021-10-28 16:21:321838검색

배열 요소를 동적 함수 이름으로 취하는 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으로 문의하시기 바랍니다. 삭제