在线等PHP自动函数__autoload什么时候自动调用啊

function__autoload($name){include$name.php;}以上是一个自动调用的函数,,函数的内容是加载一个PHP文件,我不明白的是,这个方法... function __autoload($name){
include $name.php;

}

以上是一个自动调用的函数,,函数的内容是加载一个PHP文件,我不明白的是,这个方法是自动调用的。所以自然不需要再__autoload("index")这样手机调用传参,既然是自动调用的,那么这个函数在什么条件下才会自动调用啊,那这个参数怎么传进去的啊。

我看着一个例子是
function __autoload($classname) {
include strtolower($classname)."class.php";
}
$classname = ucfirst($_GET['action']);
$shape = new $classname();

这里的$classname一个是参数,一个是变量竟然不是一个变量吧。但是我就是在new的时候就出错。说找不到对象。但是那个对象的类文件应该是没有问题啊
展开
 我来答
13856077103
推荐于2016-09-18 · TA获得超过795个赞
知道小有建树答主
回答量:1043
采纳率:100%
帮助的人:593万
展开全部

__autoload是一个魔术函数。

意思是你只需要定义魔术函数。然后就不必要每次include一大推类文件。实例化的时候,会自动引入。

比如你又A.class.php B.class.php  两个类

然后你只需要

//定义一个函数
function __autoload($className){
  if(!class_exists($className)){
    include_once $className.".class.php";
  }

}
在本页面是 就直接实例化一个a类了。 $a=new A();
更多追问追答
追问
那是不是是执行$a=new A();的时候就自动的调用了魔术函数,然后把A传给了参数,然后就同时执行了这一条include_once A.class.php";把A.class.php文件里面的代码包含了。。所以能new成功。
那看来我的代码没错。要从类文件里找原因啊。
追答
实例化一个类的时候,如果文件中不包括类文件,就会调用__autoload函数去加载类库文件。
外贸村长
推荐于2016-12-02 · 知道合伙人互联网行家
外贸村长
知道合伙人互联网行家
采纳数:159 获赞数:1023
十二年外贸营销经验,专业外贸推广。v:18615606000

向TA提问 私信TA
展开全部
如果需要使用一个类,只需要直接使用include/require将其包含进来即可。

class ClassA{
public function __construct(){
echo “ClassA load success!”;
}
}
//定义一个类ClassA,文件名为ClassA.php
class ClassA{
public function __construct(){
echo “ClassA load success!”;
}
}
class ClassB extends ClassA {
public function __construct(){
//parent::__construct();
echo “ClassB load success!”;
}
}
//定义一个类ClassB,文件名为ClassB.php,ClassB继承ClassA
class ClassB extends ClassA {
public function __construct(){
//parent::__construct();
echo “ClassB load success!”;
}
}
定义两个测试用的类之后,我们来编写一个含有__autoload()方法的PHP运行程序文件如下:
function __autoload($classname){
$classpath=”./”.$classname.'.php';
if(file_exists($classpath)){
require_once($classpath);
}
else{
echo ‘class file'.$classpath.'not found!';
}
}

$newobj = new ClassA();
$newobj = new ClassB();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jackie_lbh
2014-03-17 · TA获得超过138个赞
知道答主
回答量:159
采纳率:0%
帮助的人:84.5万
展开全部
当你实例化一个在当前文件内不存在的类时,就会执行这个函数,尝试加载类文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-17
展开全部
当页面中包含未引用的类名时,自动调用该函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式