PHP魔术函数__autoload的问题

作者: gaohailin 分类: 网站技术 发布时间: 2011-02-14 07:45

__autoload这个函数可有意思,这个魔术方法的功效是这样的,当你试图实例化一个当前程序中没有定义的类的时候,他会被触发,然后你可以自动加载指定的类文件名——当然你也可以做其他的,例如为所欲为呵呵……,总之他是在那个时候触发的!更多关于autoload方法的细节你可以查看 魔术方法__autoload()用法和注意事项

然而今天我却发现这个__autoload魔术方法或者你愿意称他为魔术函数,太专一了。当他加载需要包含的类文件时,甚至不管类文件中定义类之外的其它声明。

开始回放这个机制。

首先我们在创建一个Test.class.php文件,键入如下内容

$publicPara=’中共十七大啥时候召开的?’;
class Test{ public function __construct(){ global $publicPara; if(isset($publicPara)){ echo $publicPara; } else{ echo “管我啥事儿了?”; } } }

这次的输入居然是:管我啥事儿了?

很显然他忽略了我们在class外定义的变量,也就是他只把我们需要序列化的类加载进来,而不管其他的声明了,也仅仅是其他的声明而已,诸如echo了啥的都还是执行的。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注