解决方案 »
- php整型溢出
- 网页保存后打开不完整问题
- HTML页面,调用动态变量?
- 是不是用PHP写个论坛很难?怎么很多网站都用一些论坛产品呢?
- 关于自定义函数在哪里执行的问题
- 我重装的电脑,现在想编写并运行一下php的hello world,都需要下载什么软件,程序怎么写呢?? 帮帮我
- 请大家帮忙给个广告点击统计程序开发思路?
- 重新整理了下,关于跨多域(domain1.com、domain2.com、……)的cookie解决思路,我的主要思路是利用集中cookie维护,大家讨论?
- myadmin显示乱码
- 对于 word 中的图片,直接拷到 frontpage 中可以实现,为什么我拷到中 innerHTML 没有
- 单击Dtree子节点触发传输XML数据的事件,怎么实现啊?跪求!
- 为什么只有PHP 5.3 (5.3.27)支持直接安装到Windows?
{
var $Error = '' ;
var $Pages;
function vol()
{
$Pages = array();
$this->Pages[] = new page;
}
}
class Page
{
var $Id = '';
var $BackImage;
function vol()
{
$BackImage = array();
// $this->$BackImage[] = new Decorator; //Fatal error: Cannot use [] for reading
$this->BackImage[] = new Decorator; //只能这样写,因为 $BackImage 是数组
}
}
class Decorator
{
var $Ext = '';
}
$Editor = new Editor;
$Editor->vol();
$Editor->Pages[0]->vol();
$Editor->Pages[0]->BackImage[0]->Ext = 'str' ;
$Editor->Pages[2]->BackImage[2]->Ext = 'str2'; //Warning: Creating default object from empty value
连语法检查都通不过!
//我在使用这个类的时候
$Editor = new Editor;
$Editor->vol();
$Editor->Pages[0]->vol(); //对象定义完成?我只初始化了Pages[0]下的class Decorator对象,
//为什么下面我可以直接使用page[2]和所有page数组其他元素中的class Decorator ,
//而不需要我$Editor->Pages[2]->vol()呢?
//$Editor->name = "xlc";
echo "<BR><BR><BR>";$Editor->Pages[10]->BackImage[10]->Name = 'str' ;
echo $Editor->Pages[10]->BackImage[10]->Name;
var_dump($Editor);输出内容为:strobject(Editor)#1 (2) { ["Error"]=> string(0) "" ["Pages"]=> array(2) { [0]=> object(Page)#2 (2) { ["Id"]=> string(0) "" ["BackImage"]=> array(1) { [0]=> object(Decorator)#3 (1) { ["Ext"]=> string(0) "" } } } [10]=> object(stdClass)#4 (1) { ["BackImage"]=> array(1) { [10]=> object(stdClass)#5 (1) { ["Name"]=> string(3) "str" } } } } }请查数据Pages[10]的键值,其实他创建的是一人stdClass类页并不是Page类的一个实例,这个应该是php5特性吧。
刚开始以为是魔术方法里面问题,但后来确定了一下,不是的。
$BackImage = array(1,2,3,4);
$this->BackImage[] = new Decorator;
//这里增加两句或者可帮助你理解
print_r($BackImage);
print_r($this->BackImage);
}
你需要了解一下类的属性和类内出现的一般变量的异同建议你应该去学习 类的继承,能理清并简化你上面的思路,减少对象链、方法链的使用