誰かT_PAAMAYIM_NEKUDOTAYIM
がありますか?
これはダブルコロン演算子 ::
です( パーサートークンのリスト を参照).
Googleは驚異的に働いています。
これは ヘブライ語 "ダブルコロン"の場合です。
これはPHPの::
演算子の名前です。それは文字通り「二重コロン」を意味します。どういうわけか彼らはヘブライ語でそれを命名した。コードの構文を確認し、必要に応じて::
を付けてください:-)
From Wikipedia :
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ドキュメント から:
スコープ解決演算子(Paamayim Nekudotayimとも呼ばれます)または簡単に言えば、二重コロンは、静的、定数、およびオーバーライドされたクラスのプロパティまたはメソッドへのアクセスを許可するトークンです。
クラス定義の外部からこれらの項目を参照するときは、クラスの名前を使用します。
PHP 5.3.0の時点では、変数を使用してクラスを参照できます。変数の値をキーワードにすることはできません(例:self、parent、static)。
Paamayim Nekudotayimは、最初は、ダブルコロンに名前を付けるための奇妙な選択のように思われます。ただし、Zend Engine 0.5(PHP 3を強化)の記述中に、ZendチームはそれをZend Engine 0.5と呼びました。実際にはダブルコロンを意味します-ヘブライ語で!
これは、PHPの定数をempty()関数に適用したときにも発生します。
if (!empty(SOME_CONSTANT)) {
}
それは私の場合でした。私はこれを使ってそれを解決しました:
$string = SOME_CONSTANT;
if (!empty($string)) {
}
私にとっては、これはクラス関数内で起こりました。
PHP 5.3以降では$this::$defaults
はうまくいきました。何らかの理由でバージョン番号が小さいためにコードをサーバーに入れ替えたときに、このエラーがスローされました。
私の場合、解決策は$this
の代わりにキーワードself
を使用することでした。
self::$defaults
は問題なく動作します。
これはforeachで次のものを使うときに起こる可能性があります。
foreach( $array as $key = $value )
の代わりに
foreach( $array as $key => $value )
これが私のやり方です。私は二重引用符で表現の限界を試していました。だからこれはコードです:
$a = 5;
echo "{$a == 5 ? 'yes' : 'no'} its possible";
PHP Parse error: syntax error, unexpected '==' (T_IS_EQUAL), expecting :: (T_PAAMAYIM_NEKUDOTAYIM) in php Shell code on line 1