PHPはT_PAAMAYIM_NEKUDOTAYIMを期待しますか?
-
09-09-2019 - |
質問
誰もがT_PAAMAYIM_NEKUDOTAYIM
を持っていますか?
解決
これは、( ::
のですパーサトークンの)のhref = "http://docs.php.net/manual/en/tokens.php" のrel = "noreferrer">リストます。
他のヒント
Googleは驚異を働かせます。
これは "ダブルコロン" のヘブライのです。
これは、PHPで::
演算子の名前です。それは文字通り「ダブルコロン」を意味します。何らかの理由で、彼らはヘブライ語でそれを命名しました。あなたのコードの構文を確認し、適切な場合に::
を置く: - )
PHPでは、スコープ解決演算子もPaamayim呼ばれ 「ダブルコロン」のことを意味します(פעמייםנקודתייםヘブライ語)、Nekudotayim ヘブライます。
名前「Paamayim Nekudotayimは」で紹介されました イスラエル・開発のZend Engineのことがあったが、PHP 3で使用される0.5 ヘブライ語を話さない多くの開発者に混乱、それはまだです このサンプルのエラーメッセージのように、PHP 5で使用されている
$ phpの-r ::解析エラー:構文エラー、予期しません T_PAAMAYIM_NEKUDOTAYIM
PHP 5.4のように、エラー・メッセージは、スコープ解決演算子について まだこの名前が含まれていますが、多少その意味を明確にしています:
$ PHPの-r ::解析エラー:構文エラー、予期しない '::' (T_PAAMAYIM_NEKUDOTAYIM)
スコープ定義(もPaamayim Nekudotayim呼ばれる)オペレータやで 簡単に言え、ダブルコロンは、へのアクセスを可能にするトークンです 、静的定数、及びオーバーライドプロパティまたはクラスのメソッド
クラス定義、使用外部からこれらの項目を参照する場合 クラスの名前。
PHP 5.3.0のように、それが使用してクラスを参照することが可能です 変数。変数の値は、キーワード(例えば、自己、親のすることはできません そして、)静的ます。
Paamayim Nekudotayimは、最初は、のために奇妙な選択のように思われます ダブルコロンを命名。しかし、Zendのエンジン0.5を書きながら、 (これは権力PHP 3)、それは、Zendチームはそれを呼び出すことを決めたものです。それ 実際にダブルコロンを意味しているの! - ヘブライ語で
このも来ているあなたは、空の()関数にPHPに定数を適用すると:
if (!empty(SOME_CONSTANT)) {
}
それは私のケースでした。私はこれを使って、それを解決します:
$string = SOME_CONSTANT;
if (!empty($string)) {
}
私にとって、これはクラス関数内で起こりました。
PHP 5.3のと$this::$defaults
上記うまく働きました。私が何らかの理由で低いバージョン番号を持っていたサーバーにコードをスワップする際には、このエラーを投げます。
、私の場合には、代わりにself
のキーワード$this
を使用するためのソリューションだっます:
self::$defaults
だけで正常に動作します。
使用している場合これはforeachsに発生する可能性があります:
foreach( $array as $key = $value )
の代わりに
foreach( $array as $key => $value )
ここで述べたように、あなたは一般的に5.3が必要です。しかし、私はすべてのページを破った方法は、当社の.htaccessファイルからこの行を削除しました。
# Use PHP 5.3
AddHandler application/x-httpd-php53 .php
おそらくこれは、何らかの形での使用である。