3

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

$var=new stdClass;

但是如果我用它来声明一个类变量

class foo
{
    var $bar=new stdClass;
}

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

PS:我使用的是 PHP 4。

4

3 回答 3

5

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

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

相关手册部分

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

于 2009-09-03T08:52:42.270 回答
2

类和对象 (PHP 4)。每次阅读都很好!

于 2009-09-03T08:55:17.457 回答
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 一起工作,它更灵活......

于 2009-09-03T08:56:11.433 回答