-1

変数宣言の前に追加する$valueかどうかに応じて、異なるエラー メッセージを表示するプロパティがあります。private

Class Node{
        $value = NULL;
        public function __construct($value){
                $this->value = $value;
        }
}

$node = new Node('hello');
echo $node->value;

PHP 解析エラー: 構文エラー、予期しない T_VARIABLE、4 行目の /home/ubuntu/new.php に T_FUNCTION が必要です

ただし、次のように置き換える$value = NULL;private $value = NULL;、別のエラー メッセージが表示されます。

PHP 致命的なエラー: 11 行目の /home/ubuntu/new.php のプライベート プロパティ Node::$value にアクセスできません

私は、プライベートという用語を省略すると、プロパティが自動的にプライベートになると思いましたか?

編集

プロパティがデフォルトでパブリックであることを理解しました。$valueを前に付けずにプロパティを宣言するとエラーが発生するのはpublicなぜですか?

4

2 に答える 2

1

PHP のデフォルトの Visiblityは public です。Java やその他の OO 言語ではデフォルト値であるため、private と考えたのではないでしょうか。

//編集

私のちょっとした間違い、変数には必須の可視性があり、デフォルトとしてパブリックに関する部分はメソッドに関するものです。混乱を避けるために、必要なレベルを常に指定することをお勧めします。

var キーワードは public のエイリアスです (互換性の理由から保持されています)

于 2013-04-22T07:58:25.213 に答える
1

最初のエラーが発生しまし

echo $node->value;

クラスコードを呼び出さずに配置すると、同じエラーが発生します。

行に構文エラーがあります:

 $value = NULL;

と置換する:

var $value = NULL;

アップデート

しかし、これは問題がどこにあるかを示すためだけの間違った解決策です。常に変数の可視性を次のいずれかに設定します。

  • プライベート
  • 保護された
  • 公衆
于 2013-04-22T07:59:32.487 に答える