我在 PHP 中构建了一个类,我必须将一个类变量声明为一个对象。每次我想声明一个空对象时,我都会使用:
$var=new stdClass;
但是如果我用它来声明一个类变量
class foo
{
var $bar=new stdClass;
}
发生解析错误。有没有办法做到这一点,或者我必须在构造函数中将类变量声明为对象?
PS:我使用的是 PHP 4。
您只能以这种方式为类成员声明静态值,即ints
, strings
,bools
等arrays
。您不能做任何涉及任何类型处理的事情,例如调用函数或创建对象。
您必须在构造函数中执行此操作。
在 PHP 4 中,只允许 var 变量的常量初始化器。要使用非常量值初始化变量,您需要一个初始化函数,该函数在从类构造对象时自动调用。这样的函数称为构造函数(见下文)。
类和对象 (PHP 4)。每次阅读都很好!
你不应该在这里创建你的对象。
你应该更好地编写 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 一起工作,它更灵活......