thinkphp A()、R()方法不能跨项目调用与当前action名称相同的控制器的原因
2016-06-07 13:08
507 查看
thinkphp 使用A()和R()方法跨项目调用时,不能调用另一个项目中与当前所在action类名称相同的action类。
以下是common.PHP,import()方法308-312行
[php] view plain copy$classfile = $baseUrl . $class . $ext;
if (!class_exists(basename($class),false)) {
// 如果类不存在 则导入类库文件
return require_cache($classfile);
}
在这里的第2行中,使用了class_exists()方法判断所需要加载的类是否存在,如果不存在,就导入类库文件,也就是导入另一个项目的action类文件。
class_exists()的第2个参数为false,则不会__autoload(),也就是只会在当前文件中查找类是否存在,一般来说都是找不到的,所以可以顺利进入下一句。
但是,如果调用另一个项目中与当前所在action类名称相同的action类,则此句会认为你所要的action类已经存在,即当前操作的action,因为类名相同。然后系统返回的就是当前action类
以下是common.PHP,import()方法308-312行
[php] view plain copy$classfile = $baseUrl . $class . $ext;
if (!class_exists(basename($class),false)) {
// 如果类不存在 则导入类库文件
return require_cache($classfile);
}
在这里的第2行中,使用了class_exists()方法判断所需要加载的类是否存在,如果不存在,就导入类库文件,也就是导入另一个项目的action类文件。
class_exists()的第2个参数为false,则不会__autoload(),也就是只会在当前文件中查找类是否存在,一般来说都是找不到的,所以可以顺利进入下一句。
但是,如果调用另一个项目中与当前所在action类名称相同的action类,则此句会认为你所要的action类已经存在,即当前操作的action,因为类名相同。然后系统返回的就是当前action类
相关文章推荐
- 关于thinkphp验证码不显示的问题
- PHPDocument 代码注释规范总结
- 文件上传类
- thinkphp3.0增加setInc、setDec方法
- php 流程控制switch的简单实例
- PHP框架开发教程(二) 文件分布
- [PHP][位转换积累]之与运算截取二进制流的值
- FTP主动模式和被动模式的区别
- PHP二维数组合并的两种不同方式
- FTP匿名登入
- session的了解及使用
- php版本的选择
- PHP 反射应用之一(插件框架)
- tftp服务器搭建
- Thinkphp中模板js变量传参给PHP,并获得返回值
- PHP-自己写的代码练习-数组
- php笔记7-数组
- SAS OUTPUT语句
- 花生棒配合树莓派使用SFTP远程传输文件
- tftp server搭建及客户端配置及烧录boot