2

このコードはPHPの本で見ました(PHPアーキテクト、ZEND PHP 5認定ガイドページ141)

class foo{
  public $bar;
  protected $baz;
  private $bas;

  public var1="Test"; //String
  public var2=1.23; //Numericvalue
  public var3=array(1,2,3);
}

そしてそれは言う

プロパティは、PPP演算子の1つを使用してPHPで宣言され、その後に名前が続きます。

通常の変数と同様に、クラスプロパティは宣言中に初期化できることに注意してください。ただし、初期化は値の割り当てに制限されています(ただし、式の評価によるものではありません)。たとえば、関数を呼び出して変数を初期化することはできません。これは、クラスのメソッドの1つ(通常はコンストラクター)内でのみ実行できることです。

var1, var2, var3宣言の仕方がわかりません。違法ではないですか?

4

4 に答える 4

4

サンプルコードは(ほぼ)有効です(いくつかの$記号が欠落しているだけです)。

class foo
{
    // these will default to null
    public $bar;
    protected $baz;
    private $bas;

    // perfectly valid initializer to "string" value
    public $var1 = "Test"; //String

    // perfectly valid initializer to "float" value
    public $var2 = 1.23;    //Numericvalue

    // perfectly valid initializer to "array" value
    // (array() is a language construct/literal, not a function)
    public $var3 = array(1,2,3);
}

ですから、あなたのコードが由来する本は間違いなく誤りです。

于 2011-11-28T12:16:09.857 に答える
3

いいえ、これはエラーです。定義:

public var1="Test"; //String

あなたに与えるでしょう:

Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE

詳細については、http://codepad.org/meMrSmfAを参照してください。

于 2011-11-28T12:15:55.640 に答える
2

PHPの変数は、「ドル記号とそれに続く変数名で表されます」。ドルレス変数が要求されましたが、それらが有効になっているのを見ることができるかどうかは疑問です。

つまり、コードが無効です。

于 2011-11-28T12:35:28.147 に答える
0

PHPでは、変数は自動キャストされます。変数に保持したいものは何でも、型を宣言する必要はありません。しかし、必須のことの1つは、phpで変数を宣言するときは、見逃した「$」を使用する必要があるということです。Book宣言は次のとおりです。

  public var1="Test"; //String
  public var2=1.23; //Numericvalue
  public var3=array(1,2,3);

その間違った宣言権利は

public $var1="Test"; //String
public $var2=1.23; //Numericvalue
public $var3=array(1,2,3);

そうでなければ、すべてがうまくいきます。ありがとうございました

于 2014-01-27T19:57:37.243 に答える