PHP T_PAAMAYIM_NEKUDOTAYIM エラー

<?php
class Foo {
 public function hello() {
  echo ‘Hello world!’;
 }
 public static function hello2() {
  echo ‘Hello world!’;
 }
}
$my_foo = Foo;
$a = new $my_foo();
$a->hello();
$my_foo2 = Foo;
$my_foo2::hello2();
?>

↑こんなコードを書いたら、↓下記のようなパースエラーですと怒られました。

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in C:\www\aaa\aaa\test_1.php on line 15

調べた所、ヘブライ語でダブルコロン「::」をこのように表記するそうです。
スコープ定義演算子 (::)
スコープ定義演算子 (またの名を Paamayim Nekudotayim)、
平たく言うと「ダブルコロン」は、トークンのひとつです。
static, 定数 およびオーバーライドされたクラスのプロパティやメソッドにアクセスすることができます。
これらの要素をクラス定義の外から参照する際には、 クラスの名前を使用してください。
PHP 5.3.0 以降では、変数を用いてクラスを参照することも可能です。
変数の値に (self や parent、 static といった) キーワードを指定することはできません。

そこで下記のようにしたら動きました。
<?php
class Foo {
 public function hello() {
  echo ‘Hello world!’;
 }
 public static function hello2() {
  echo ‘Hello world!2222’;
 }
}
$my_foo = Foo;
$a = new $my_foo();
$a->hello();
Foo::hello2();
?>

PHPは何かPerlのようなC(JAVA?)のような言語ですね。
この記号とか矢印が何かまだ慣れません。。

コメントを残す

メールアドレスが公開されることはありません。

【認証キー】 (必須)