기타 언어 수준 수정
1. 호환되지 않는 $this 컨텍스트에서 정적으로 비정적 메서드를 호출하는 것은 더 이상 지원되지 않습니다.
호환되지 않는 $this 컨텍스트에서 정적으로 비정적 메서드를 호출하는 것은 더 이상 지원되지 않습니다. 이 시나리오에서는 $this가 정의되지 않지만 호출은 여전히 가능하지만 경고가 표시됩니다.
class A { public function test() { var_dump($this); } } // Note: Does NOT extend A class B { public function callNonStaticMethodOfA() { A::test(); } } (new B)->callNonStaticMethodOfA(); // Deprecated: Non-static method A::test() should not be called statically // Notice: Undefined variable $this NULL
이 상황은 호환되지 않는 컨텍스트의 호출에 적용됩니다. 위의 코드 예에서 클래스 B와 클래스 A는 관계가 없으므로 호출 시 $this가 정의되지 않습니다.
그러나 클래스 B가 클래스 A에서 상속되면 호출이 합법적입니다.
2. 다음 예약어는 클래스 이름, 인터페이스 이름, 특성 이름으로 사용할 수 없습니다.
bool int float string null false true다음 키워드는 향후 사용을 위해 예약되어 있어 현재 오류 없이 사용할 수 있지만 권장되지는 않습니다.
resourceobject mixed numeric
3. Yield 구문 조정
표현식에서 Yield 구문 구조를 사용할 때 괄호가 더 이상 필요하지 않습니다. 이제 "print"와 "=>" 연산자 사이에 우선순위가 있는 오른쪽 연관 연산자입니다. 일부 시나리오에서는 동작이 이전과 일치하지 않습니다.
echo yield -1; echo (yield) - 1; // 之前的语法解释行为 echo yield (-1); // 现在的语法解释行为 yield $foo or die; yield ($foo or die); // 之前的语法解释行为 (yield $foo) or die; // 现在的语法解释行为
괄호를 사용하면 모호함을 피할 수 있습니다.
참고: 생산량에 대해서는 Bird Brother의 다음 기사를 참조하세요. http://www.laruence.com/2012/08/30/2738.html
4. 기타 일부 조정 사항은 ASP 형식 지원을 제거했습니다. 및 스크립트 구문 지원: <% 및 <script 언어=php>
더 이상 new 결과에 대한 참조 할당을 지원하지 않습니다. (
번역을 공유해 주신 Gazhikaba에게 감사드립니다) 호환되지 않는 $this 컨텍스트에서 비정적 메서드에 대한 범위 호출을 제거했습니다. 참고 자료: https://wiki.php.net/rfc/incompat_ctx.http://www.laruence.com/2012/06/14/2628.html
Ini 파일은 더 이상 #으로 시작하는 주석을 지원하지 않습니다. .
$HTTP_RAW_POST_DATA 변수가 제거되었습니다. 대신 php://input을 사용하세요. https://wiki.php.net/rfc/remove_alternative_php_tags