이전 버전의 PHP에서는 불일치 문제가 발생했습니다. 예:${$first ['이름']}. 이 구문은 혼란을 야기하거나 구문이 일관되지 않다고 말할 수 있습니다. 불일치 문제를 극복하기 위해 PHP 7은 "균일 변수 구문"이라는 새로운 구문을 추가했습니다.
균일 변수 구문은 왼쪽에서 오른쪽으로 변수를 평가합니다. 균일 변수 구문을 사용하려면 중괄호를 추가해야 합니다. 예를 들어,
echo ${$first[‘name’]};
균일한 변수 구문은 연산자 조합을 허용하며 이전 평가가 사용되는 일부 표현식의 이전 버전과의 호환성을 깨뜨릴 수도 있습니다.
예시
<?php $x = (function() { return 20 - 10; }) (); echo "$x\n"; ?>
출력
위 PHP 프로그램의 출력은 다음과 같습니다.
10
참고: 위의 프로그램은 즉시 함수 표현식을 호출합니다.
균일 변수 구문은 기존 구문의 새로운 조합을 사용합니다. 예를 들어,
$foo([‘bar’])();
균일 변수 구문은 함수에서 반환된 문자열의 문자를 역참조할 수 있습니다.
[$obj, $obj1] [0]->pro;
경우에 따라 PHP 7은 중첩된 이중 콜론(::),
을 지원합니다.$foo[‘bar’]::$baz;
중첩 메소드/함수 호출
중첩된 메서드 및 함수 호출 또는 호출 가능한 모든 항목을 사용하여 괄호를 두 배로 늘릴 수 있습니다.
예시
foo()(); //return by a function callable $foo->bar()(); // return by an instance method Foo::bar()(); // static method $foo()(); // return by another callable
임의의 표현 역참조
PHP에서는 이제 괄호를 포함한 모든 유효한 표현식을 역참조할 수 있습니다. 예를 들어,
(exp) [‘foo’] ; // It will access an array key (exp)->foo; // This will access the property (exp)->foo(); // It will call to a method etc.
예시
<?php function emp() { echo "This is emp() \n"; }; function dept() { echo "This is dept() \n"; return emp; }; function sub() { echo "This is sub()\n"; return dept; }; sub(); echo "----------------\n"; sub()(); echo "----------------\n"; sub()()(); ?>
출력
위 프로그램의 출력은 -
This is sub() ------------- This is sub() This is dept() ------------- This is sub() This is dept() This is emp()