初学问下 $this->spArgs("id");

#1 holmesapple

在快速入门制作留言本的例子里,类main extends spController,main里的成员函数show()里有句: $id = $this->spArgs("id");
这里的$this应该指的当前的类main实例化的对象,但是mian和他继承的\SpeedPHP\Core\spController.php文件里的spController类都是没有
spArgs()这个成员函数的。只是在spController.php文件里有个spArgs类,也没的这个 spArgs()函数。  这些我是按Java得面向对象理解的!$id = $this->spArgs("id"); 应该怎么理解啊?

2010-08-02 17:13:09

#2 jake

这是PHP5的一个非常厉害的新特性——魔术函数
http://cn2.php.net/manual/en/language.oop5.magic.php63863

你可以发现spController虽然没有spArgs等成员函数,但是有些类似__call的函数,而__call就是魔术函数,通过这些魔术函数你可以“模拟”出不存在的成员函数或变量,甚至是模拟出一个不存在的类。

2010-08-02 18:06:22