我已經在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的工作,這是更靈活的...