3

PHP でクラスを作成しました。クラス変数をオブジェクトとして宣言する必要があります。私が使用する空のオブジェクトを宣言したいときはいつでも:

$var=new stdClass;

しかし、それを使用してクラス変数を次のように宣言すると

class foo
{
    var $bar=new stdClass;
}

解析エラーが発生します。これを行う方法はありますか、またはコンストラクター関数でクラス変数をオブジェクトとして宣言する必要がありますか?

PS: PHP 4 を使用しています。

4

3 に答える 3

5

この方法ではintsstringsboolsarraysなどのクラス メンバーに対してのみ静的な値を宣言できます。関数の呼び出しやオブジェクトの作成など、あらゆる種類の処理を伴うことはできません。

コンストラクタでそれを行う必要があります。

関連するマニュアル セクション:

PHP 4 では、var 変数の定数初期化子のみが許可されています。非定数値で変数を初期化するには、オブジェクトがクラスから構築されるときに自動的に呼び出される初期化関数が必要です。このような関数はコンストラクターと呼ばれます (以下を参照)。

于 2009-09-03T08:52:42.270 に答える
2

クラスとオブジェクト (PHP 4) . 毎回よく読んでます!

于 2009-09-03T08:55:17.457 に答える
2

ここでオブジェクトを作成しないでください。

セッターとゲッターを書いたほうがいい

<?php
    class foo
    {
       var $bar = null;

       function foo($object = null)
       {
          $this->setBar($object);
       }

       function setBar($object = null)
       { 
          if (null === $object)
          {
             $this->bar = new stdClass();
             return $this;
          }

          $this->bar = $object;
          return $this;
       }
    }

ちなみに、より柔軟なOOPを使用するにはPHP5を使用する必要があります...

于 2009-09-03T08:56:11.433 に答える