development

PHP는 T_PAAMAYIM_NEKUDOTAYIM을 기대합니까?

big-blog 2020. 2. 11. 22:35
반응형

PHP는 T_PAAMAYIM_NEKUDOTAYIM을 기대합니까?


누구 T_PAAMAYIM_NEKUDOTAYIM있나요?


이중 콜론 연산자입니다 ::( 구문 분석기 토큰 목록 참조 ).


구글은 놀라운 일을한다.

"이중 콜론" 히브리어 입니다.


::PHP 에서 연산자 의 이름입니다 . 문자 그대로 "이중 콜론"을 의미합니다. 어떤 이유로 그들은 그것을 히브리어로 명명했습니다. 코드 구문을 확인하고 ::적절한 위치에 :-)


에서 위키 백과 :

PHP에서 스코프 해상도 연산자는 Paamayim Nekudotayim (히브리어에서는 "이중 콜론"을 의미하는 히브리어 : פעמיים נקודתיים)이라고도합니다.

"Paamayim Nekudotayim"이라는 이름은 PHP 3에서 사용되는 이스라엘에서 개발 한 Zend Engine 0.5에서 도입되었습니다. 히브리어를 사용하지 않는 많은 개발자들에게는 혼란 스럽지만이 샘플 오류 메시지와 같이 여전히 PHP 5에서 사용되고 있습니다. :

$ php -r :: 구문 분석 오류 : 구문 오류, 예기치 않은 T_PAAMAYIM_NEKUDOTAYIM

PHP 5.4부터, 범위 확인 연산자와 관련된 오류 메시지에는 여전히이 이름이 포함되어 있지만 그 의미는 어느 정도 명확합니다.

$ php -r :: 구문 분석 오류 : 구문 오류, 예기치 않은 '::'(T_PAAMAYIM_NEKUDOTAYIM)

에서 공식 PHP 문서 :

Scope Resolution Operator (Paamayim Nekudotayim이라고도 함) 또는 더 간단한 용어 인 이중 콜론은 클래스의 정적, 상수 및 재정의 된 속성 또는 메서드에 액세스 할 수있는 토큰입니다.

클래스 정의 외부에서 이러한 항목을 참조 할 때는 클래스 이름을 사용하십시오.

PHP 5.3.0부터는 변수를 사용하여 클래스를 참조 할 수 있습니다. 변수의 값은 키워드가 될 수 없습니다 (예 : self, parent 및 static).

Paamayim Nekudotayim은 처음에는 이중 콜론을 명명하기위한 이상한 선택처럼 보입니다. 그러나 Zend Engine 0.5 (PHP 3를 지원하는)를 작성하는 동안 Zend 팀이이를 결정했습니다. 실제로 이중 콜론을 의미합니다-히브리어!


empty () 함수에 PHP 상수를 적용 할 때도옵니다 :

if (!empty(SOME_CONSTANT)) {

}

그게 내 사건이야 이것을 사용하여 해결했습니다.

$string = SOME_CONSTANT;
if (!empty($string)) {

}

나에게 이것은 클래스 함수 내에서 일어났다.

PHP 5.3 이상에서는 제대로 $this::$defaults작동했습니다. 어떤 이유로 든 더 낮은 버전 번호를 가진 서버로 코드를 서버로 교체했을 때이 오류가 발생했습니다.

The solution, in my case, was to use the keyword self instead of $this:

self::$defaults works just fine.


This can happen on foreachs when using:

foreach( $array as $key = $value )

instead of

foreach( $array as $key => $value )

As stated here, you generally need 5.3. However, the way I broke all pages was by removing this line from our .htaccess file.

# Use PHP 5.3
AddHandler application/x-httpd-php53 .php

Perhaps this is of use to somehow.

참고URL : https://stackoverflow.com/questions/592322/php-expects-t-paamayim-nekudotayim



반응형