PHP는 T_PAAMAYIM_NEKUDOTAYIM을 기대합니까?
누구 가지고 있는 사람?T_PAAMAYIM_NEKUDOTAYIM
?
이중 콜론 연산자입니다(파서 토큰 목록 참조).
히브리어로 '이중대장'이란 뜻이죠
의 이름입니다.::
연산자를 지정합니다.말 그대로 '이중대장'이라는 뜻이에요.어떤 이유에서인지 그들은 그것을 히브리어로 명명했다.코드 구문을 확인하고,::
적절한 경우:-)
Wikipedia에서:
In PHP, the scope resolution operator is also called Paamayim Nekudotayim (Hebrew: פעמיים נקודתיים), which means “double colon” in Hebrew.
Paamayim Nekudotayim이라는 이름은 PHP 3에서 사용되는 이스라엘 개발 Zend Engine 0.5에 도입되었습니다.히브리어를 할 줄 모르는 많은 개발자들에게는 혼란스러웠지만 다음 오류 메시지 예시와 같이 여전히 PHP 5에서 사용되고 있습니다.
$php - r :: 구문 오류: 구문 오류, 예기치 않은 T_PAAMAYIM_NEKUDOTAYIM
PHP 5.4 현재 스코프 해결 연산자와 관련된 오류 메시지에는 여전히 이 이름이 포함되어 있지만 그 의미는 다소 명확합니다.
$php - r :: 구문 오류: 구문 오류, 예기치 않은 ':' (T_PAAMAYIM_NEKUDOTAYIM)
Scope Resolution Operator(Paamayim Nekudotayim이라고도 함) 또는 간단히 말하면 이중 콜론은 클래스의 정적, 상수 및 재정의된 속성 또는 메서드에 액세스할 수 있는 토큰입니다.
클래스 정의 외부에서 이러한 항목을 참조할 때는 클래스 이름을 사용합니다.
PHP 5.3.0에서는 변수를 사용하여 클래스를 참조할 수 있습니다.변수 값은 키워드(예: self, parent, static)가 될 수 없습니다.
Paamayim Nekudotayim은 처음에는 더블콜론의 이름을 짓기엔 이상한 선택처럼 보일 것이다.그러나 Zend Engine 0.5(PHP 3의 파워)를 작성하면서 Zend 팀은 그렇게 부르기로 결정했다.그것은 사실 히브리어로 더블콜론을 의미해요!
나는 히브리어를 꽤 잘 알고 있기 때문에, 「파마임 네쿠도타임」의 이름을 명확하게 하기 위해서, 바꾸어 말하면 「이중 대장」이지만, 문자 그대로 번역됩니다.
- "파마임"은 "두 개" 또는 "두 번"을 의미한다.
- 은 '을 뜻한다.네쿠도타임'은 '점'(점등)을 뜻한다.'마음껏'
- 히브리어로 네쿠다는 점을 의미한다.
- 복수형은 nekudot, 즉 점으로, 모음으로 기능한다.
- '네쿠도타임'이라고 하는 것은 접미사 '-ayim'이 '둘' 또는 '둘'을 의미하기 때문입니다.
::
는 "두 번, 두 개의 점" 또는 일반적으로 스코프 분해능 연산자로 알려져 있음을 나타냅니다.
이것은 PHP의 상수를 empty() 함수에 적용할 때도 발생합니다.
if (!empty(SOME_CONSTANT)) {
}
그건 내 경우였어.이걸 이용해서 해결했어요.
$string = SOME_CONSTANT;
if (!empty($string)) {
}
편집: 안타깝게도 PHP 8.0에서는 "No, no no no"가 아닙니다.이 RFC는 기대했던 대로 받아들여지지 않아 변경을 제안하고 있습니다.T_PAAMAYIM_NEKUDOTAYIM
로로 합니다.T_DOUBLE_COLON
; 하지만 거절당했다.
주의: 이 답변은 역사적 목적을 위해 보관합니다.사실 RFC의 작성과 투표율 때문에 이 답변을 작성하게 되었습니다.또, 가까운 장래에 받아 들여지기를 바라고 있습니다.
이 문제는 다음 기능을 사용할 때 Forach에서 발생할 수 있습니다.
foreach( $array as $key = $value )
대신
foreach( $array as $key => $value )
나에게 이것은 수업의 함수 안에서 일어났다.
5.3 에서는 PHP 5.3 이상$this::$defaults
이치노어떤 이유로든 낮은 버전 번호를 가진 서버에 코드를 스왑하면 이 에러가 발생합니다.
에는 키워드를 이었습니다.self
$this
:
self::$defaults
정상적으로 동작합니다.
큰따옴표를 사용한 문자열 과제에서 이런 일이 일어났습니다.POST 변수에서 닫힘 컬리가 누락되었습니다...
"for {$_POST['txtName'] on $date"
;
그랬어야 했다
"for {$_POST['txtName']} on $date"
;
이유는 설명할 수 없어요.즉, 코드를 해독할 수 있는 오류는 알 수 있지만 왜 클래스 오류를 참조하는지 알 수 없습니다.
잘못 입력했습니다.($array as $key as $value)
는 첫 PHP를 했습니다.as
.
언급URL : https://stackoverflow.com/questions/592322/php-expects-t-paamayim-nekudotayim
'source' 카테고리의 다른 글
Java Generics: 목록에 캐스트할 수 없는가? (0) | 2022.12.13 |
---|---|
2개의 조인 및 구별로 그룹화된 mysql 쿼리 최적화 (0) | 2022.12.13 |
Kohana 기반 웹사이트의 속도와 확장성 최적화 (0) | 2022.12.13 |
배열에서 처음 N개의 요소를 가져오는 방법 (0) | 2022.12.13 |
uniqid는 얼마나 고유합니까? (0) | 2022.12.13 |