Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP 7의 균일한 변수 구문


이전 버전의 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()