PHP对象类变量

时间:2009-09-03 08:46:55

标签: php oop class php4

我在PHP中构建了一个类,我必须将一个类变量声明为一个对象。每次我想声明一个我使用的空对象:

$var=new stdClass;

但是如果我用它来将类变量声明为

class foo
{
    var $bar=new stdClass;
}

发生解析错误。有没有办法做到这一点,还是我必须将类变量声明为构造函数中的对象?

PS:我使用的是PHP 4。

3 个答案:

答案 0 :(得分:5)

您只能以这种方式为类成员声明静态值,即intsstringsboolsarrays等等。你不能做任何涉及任何处理的事情,比如调用函数或创建对象。

您必须在构造函数中执行此操作。

Relevant manual section

  

在PHP 4中,只允许使用var变量的常量初始值设定项。要使用非常量值初始化变量,您需要一个初始化函数,该函数在从类构造对象时自动调用。这样的函数称为构造函数(见下文)。

答案 1 :(得分:2)

Classes and Objects (PHP 4)。每次都很好读!

答案 2 :(得分:2)

你不应该在这里创建你的对象。

你最好写一下setter和getter

<?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;
       }
    }

顺便说一句,你应该使用PHP5来处理OOP,这更灵活......