• 技术文章 >PHP >PHP教程

    PHP函数__autoload失效原因

    小妮浅浅小妮浅浅2021-09-15 15:54:50原创105

    PHP函数__autoload可以实现简单的自动加载,但是在引入了smarty后发现__autoload函数已失效,后来发现是spl_autoload_register函数的原因。

    function __autoload($name)
    {
    require 'class/'.$name.'.php';
    echo '1';
    }
    function autoload_test($name)
    {
    echo '2';
    }
    spl_autoload_register('autoload_test');
    $ca=new Ca();

    结果输出2,可以看到__autoload函数没有被执行,官网的解析是:如果在你的程序中已经实现了__autoload()函数,它必须显式注册到__autoload()队列中。因为 spl_autoload_register()函数会将Zend Engine中的__autoload()函数取代为spl_autoload()或spl_autoload_call()。

    为了让代码正常工作,应该重新注册__autoload函数:

    function __autoload($name)
    {
    require 'class/'.$name.'.php';
    echo '1';
    }
    function autoload_test($name)
    {
    echo '2';
    }
    spl_autoload_register('autoload_test');
    spl_autoload_register('__autoload');
    $ca=new Ca();

    以上就是PHP函数__autoload失效原因,希望对大家有所帮助。更多php学习指路:php教程

    本文转载于php中文网,如有侵犯联系作者修改。

    专题推荐:php autoload
    品易云
    上一篇:php设置cookie记住密码的方法 下一篇:php实现sftp上传的方法

    相关文章推荐

    • php去除小数点后多余0的方法• php显示和实际时间不同的解决• php.ini中屏蔽所有错误的方法• php数组获取值的方法• php删除数组后2项元素的方法• php中intval()的使用• php隐藏中间字符的方法• php将字符串转换bool类型的方法• php返回错误代码的方法• php http文件上传的实现方法• php头编码的设置方法• php实现数字转换为大写的方法• PHP中销毁对象的方法• php获得表单提交数据的三种方法• php设置cookie记住密码的方法

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网