PHP中__autoload和Smarty冲突的简单解决方法

本文讲述了PHP中__autoload和Smarty冲突的简单解决方法。分享给大家供大家参考,具体如下:

一、问题:

最近,在项目中发现,PHP 的 __autoload 方法失效了。调试了好久,百思不得其解,查了下资料才知道原来是 Smarty 的原因。新版的 Smarty 改变了autoload的方式。

二、解决方法:

在 Smarty 的包含类文件后加一段代码,spl_autoload_register("__autoload");

如下:

<?php
  define('ROOT_PATH', dirname(__FILE__));
  require_once ROOT_PATH . '/includes/smarty/Smarty.class.php';
  spl_autoload_register("__autoload"); // 添加这段代码
?>

更多关于PHP相关内容感兴趣的读者可查看本站专题:《smarty模板入门基础教程》、《PHP模板技术总结》、《PHP基于pdo操作数据库技巧总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。

(0)

相关推荐

  • PHP spl_autoload_register实现自动加载研究

    这里通过一个实验谈谈这个函数的部分特征. 函数原型 bool spl_autoload_register ([ callback $autoload_function [, bool $throw = true [, bool $prepend = false ]]] ) 版本兼容 PHP 5 >= 5.1.2 实验过程 第一步,使用spl_autoload_register()函数注册load()方法 复制代码 代码如下: <?php function load(){ require_onc

  • thinkphp autoload 命名空间自定义 namespace

    使用thinkPHP过程中,一些自定义的类库和第三方类库需要找一个合适的位置放置,放到系统默认的org文件夹感觉不太好,破坏了thinkPHP的原生目录. 就看了一下官方手册,可以在模块或者应用的配置文件里自定义类库的命名空间. 不过使用中需要注意的是,你的自定义的命名空间名称需要和你的文件夹名称相对应,不能更改. 然后测试一下 以上所述就是本文的全部内容了,希望大家能够喜欢.

  • PHP中spl_autoload_register()函数用法实例详解

    本文实例分析了PHP中spl_autoload_register()函数用法.分享给大家供大家参考,具体如下: 在了解这个函数之前先来看另一个函数:__autoload. 一.__autoload 这是一个自动加载函数,在PHP5中,当我们实例化一个未定义的类时,就会触发此函数.看下面例子: printit.class.php: <?php class PRINTIT { function doPrint() { echo 'hello world'; } } ?> index.php <

  • php中spl_autoload详解

    SPL有两个不同的函数 spl_autoload, spl_autoload_call,通过将autoload_func指向这两个不同的函数地址来实现不同的自动加载机制. spl_autoload 是SPL实现的默认的自动加载函数,它的功能比较简单.它可以接收两个参数,第一个参数是$class_name,表示类名,第二个参 数$file_extensions是可选的,表示类文件的扩展名" title="扩展名">扩展名,可以在$file_extensions中指定多个扩

  • PHP函数spl_autoload_register()用法和__autoload()介绍

    __autoload()的用法就不再说了,以前已经在我的WEB开发笔记中说过.PHP __autoload函数(自动载入类文件)的使用方法, 原文地址:http://www.jb51.net/article/29625.htm . 说一说,spl_autoload_register()的用法吧,很简单,可以这样理解,就是声明一个自定义__autoload(),你可以是A函数,也可以是B函数,想怎么样就怎么样,函数体的写法,当然要和__autoload()一样就OK 了. 当PHP找不到类文件会调

  • PHP之autoload运行机制实例分析

    本文较为深入的分析了PHP的autoload运行机制.对于深入理解PHP运行原理有一定的帮助作用.具体分析如下: php实现autoload有两种方法: 1.拦截器__autoload() 2.设置全局变量函数指针autoload_func为指定函数.通常在c扩展中使用 本质上前者还是通过后者实现的. 分析过程,PHP5.3.6源码: =>Zend/zend_vm_def.h  1894行 ZEND_VM_HANDLER(109,ZEND_FETCH_CLASS,... =>zend_exec

  • PHP中spl_autoload_register()和__autoload()区别分析

    关于spl_autoload_register()和__autoload(),相信大多数都会选择前者了? 看两者的用法: 复制代码 代码如下: //__autoload用法function __autoload($classname){    $filename = "./class/".$classname.".class.php";    if (is_file($filename))    {        include $filename;    }} /

  • PHP中spl_autoload_register函数的用法总结

    spl_autoload_register(PHP 5 >= 5.1.2)spl_autoload_register - 注册__autoload()函数 说明bool spl_autoload_register ([ callback $autoload_function ] )将函数注册到SPL __autoload函数栈中.如果该栈中的函数尚未激活,则激活它们.如果在你的程序中已经实现了__autoload函数,它必须显式注册到__autoload栈中.因为spl_autoload_reg

  • PHP中__autoload和Smarty冲突的简单解决方法

    本文讲述了PHP中__autoload和Smarty冲突的简单解决方法.分享给大家供大家参考,具体如下: 一.问题: 最近,在项目中发现,PHP 的 __autoload 方法失效了.调试了好久,百思不得其解,查了下资料才知道原来是 Smarty 的原因.新版的 Smarty 改变了autoload的方式. 二.解决方法: 在 Smarty 的包含类文件后加一段代码,spl_autoload_register("__autoload"); 如下: <?php define('RO

  • php中unable to fork报错简单解决方法

    今天小编遇到一个问题,当调用了system方法,并且执行了shell脚本,开始的时候,一切都非常正常,但是当程序运行后一段时间,出现了显示unable to fork的报错,这个是什么原因呢,后来小编排查了下,主要是因为达到用户的进程上限了,下面小编给大家介绍下解决方式. 限制linux用户的进程数 修改以下文件 vi /etc/security/limits.conf vpsee hard nproc 32 @student hard nproc 32 @faculty hard nproc

  • php5.3中ZendGuardLoader与wincache冲突问题的解决方法

    windows环境下,php5.3版本同时开始ZendGuardLoader和wincache的话,会导致zend加密过的部分文件会无法正常运行,提示"Zend Guard Run-time support missing!". 问题重现:从应用中心安装需要zend支持的插件时,校验文件(经过zend加密过的单一文件)正常,也能通过应用中的校验并下载插件,但在安装插件时就会出现上面说到那些提示. 问题分析:zend与wincache冲突 解决方法: 关于wincache: 在php.i

  • python中json格式数据输出的简单实现方法

    主要使用json模块,直接导入import json即可. 小例子如下: #coding=UTF-8 import json info={} info["code"]=1 info["id"]=1900 info["name"]='张三' info["sex"]='男' list=[info,info,info] data={} data["code"]=1 data["id"]=190

  • Android 中ScrollView与ListView冲突问题的解决办法

    Android 中ScrollView与ListView冲突问题的解决办法 自定义MyListView public class MyListView extends ListView { public MyListView(Context context) { super(context); // TODO Auto-generated constructor stub } public MyListView(Context context, AttributeSet attrs) { sup

  • php中加密解密DES类的简单使用方法示例

    本文实例讲述了php中加密解密DES类的简单使用方法.分享给大家供大家参考,具体如下: 在平时的开发工作中,我们经常会对关键字符进行加密,可能为了安全 也可能为了规范,所以要正确使用DES加密解密 代码1: class DES { var $key; // 密钥 var $iv; // 偏移量 function __construct( $key, $iv=0 ) { $this->key = $key; if( $iv == 0 ) { $this->iv = $key; } else {

  • Yii框架参数化查询中IN查询只能查询一个的解决方法

    本文实例讲述了Yii框架参数化查询中IN查询只能查询一个的解决方法.分享给大家供大家参考,具体如下: 在yii框架中使用参数化进行IN查询时,结果不如所愿 $sql =<<<SQL SELECT id FROM tb WHERE id IN(:ids) SQL; $db = GeneralService::getSlaveDB(); $result = $db->createCommand($sql)->query([':ids' => '1013,1015,1017'

  • java中double类型运算结果异常的解决方法

    问题: 对两个double类型的值进行运算,有时会出现结果值异常的问题.比如: System.out.println(19.99+20); System.out.println(1.0-0.66); System.out.println(0.033*100); System.out.println(12.3/100); 输出: 39.989999999999995 0.33999999999999997 3.3000000000000003 0.12300000000000001 解决方法: J

  • C# WinForm控件对透明图片重叠时出现图片不透明的简单解决方法

    本文实例讲述了C# WinForm控件对透明图片重叠时出现图片不透明的简单解决方法.分享给大家供大家参考,具体如下: 在Winform中如果将一个透明图片放在窗体上能正常显示透明,但是如果将该图片放在另一个控件上会导致不能显示透明效果. 解决这种情况,可以采取在控件上使用GDI+绘画出透明图片. 这里我们就以一个pictureBox2控件上面重叠一张png透明图片为例: 我们只需要给pictureBox2控件添加Paint事件,然后对png透明图片进行绘制即可,代码如下: private voi

  • Django与Vue语法的冲突问题完美解决方法

    当我们在django web框架中,使用vue的时候,会遇到语法冲突. 因为vue使用{{}},而django也使用{{}},因此会冲突. 解决办法1: 在django1.5以后,加入了标签: {% verbatim myblock %} {% endverbatim myblock %} 被此标签包裹的代码将不会被Django的模板引擎渲染. 因此,我们可以把带有{{ }} 的Vue代码放在 {% verbatim myblock %}标签中间,例如: <div id="app1&quo

随机推荐