我已经在PHP中构建了一个类,并且我必须声明一个类变量作为对象。每次我要声明一个空物体使用:PHP对象类变量
$var=new stdClass;
但是,如果我用它来声明一个类变量
class foo
{
var $bar=new stdClass;
}
出现解析错误。有没有办法做到这一点,或者我必须声明类变量作为构造函数中的对象?
PS:我使用PHP 4
我已经在PHP中构建了一个类,并且我必须声明一个类变量作为对象。每次我要声明一个空物体使用:PHP对象类变量
$var=new stdClass;
但是,如果我用它来声明一个类变量
class foo
{
var $bar=new stdClass;
}
出现解析错误。有没有办法做到这一点,或者我必须声明类变量作为构造函数中的对象?
PS:我使用PHP 4
只能声明静态值,这样的类成员,即ints
,strings
,bools
,arrays
等。你不能做任何涉及任何形式的处理的事情,比如调用函数或创建对象。
你必须在构造函数中完成它。
在PHP 4中,仅var变量初始化为常量。要使用非常量值初始化变量,需要一个初始化函数,当从该类构造对象时,将自动调用该函数。这样的函数被称为构造函数(见下文)。
Classes and Objects (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的工作,这是更灵活的...