我建立了一个PHP类,我必须声明一个类变量作为一个对象。 每次我要声明一个空物体使用:
$var=new stdClass;
但是,如果我用它来声明一个类变量
class foo
{
var $bar=new stdClass;
}
发生解析错误。 有没有办法做到这一点还是我必须声明类变量作为构造函数的对象?
PS:我使用PHP 4。
我建立了一个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的工作,这是更灵活的...