我在PHP中构建了一个类,我必须将一个类变量声明为一个对象。每次我想声明一个我使用的空对象:
$var=new stdClass;
但是如果我用它来将类变量声明为
class foo
{
var $bar=new stdClass;
}
发生解析错误。有没有办法做到这一点,还是我必须将类变量声明为构造函数中的对象?
PS:我使用的是PHP 4。
答案 0 :(得分:5)
您只能以这种方式为类成员声明静态值,即ints
,strings
,bools
,arrays
等等。你不能做任何涉及任何处理的事情,比如调用函数或创建对象。
您必须在构造函数中执行此操作。
在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,这更灵活......