Home >Backend Development >PHP Tutorial >PHP升级到5.4后 private调用类库不能执行
小白求助!!!
php升级到5.4后
之前可以执行的函数现在不能执行了
整个文件结构如下
class wechatCallbackapiTest
{
public function valid()
{
……
include('db.php');
……
$contentStr= $this->zhiwen($name,$xuehao);
……
}
private function zhiwen($uid,$xuehao) {
include('db.php');
……
}
}
现在zhiwen函数只要到include('db.php'); 下面就不能正常执行了
而db.php在上面valid调用是正常的
db.php文件为调用一个数据库的类库,文件如下
$db_config["hostname"] = "localhost"; //服务器地址
……
include('db.class.php');
$db = new db();
$db->connect($db_config);
?>
小白一个,对于函数、类库继承很是不明白,请教高手帮忙解决 谢谢
这与 PHP升级到5.4 毫无关系!
你在 public function valid() 中
include('db.php');
又在 private function zhiwen($uid,$xuehao) 中
include('db.php');
由于 db.class.php 中有 db 类的定义,就造成了 db 类重复定义的错误
这是连 php4 都不允许出现的!
这与 PHP升级到5.4 毫无关系!
你在 public function valid() 中
include('db.php');
又在 private function zhiwen($uid,$xuehao) 中
include('db.php');
由于 db.class.php 中有 db 类的定义,就造成了 db 类重复定义的错误
这是连 php4 都不允许出现的!
只要你的 db.class.php 中有 class db { .... }
那么你的程序在任何版本的 php 中都不可能正确运行
倒是
public function valid()
{
……
include('db.php'); //这个可能是你后加的
……
$contentStr= $this->zhiwen($name,$xuehao);
……
}
倒是
public function valid()
{
……
include('db.php'); //这个可能是你后加的
……
$contentStr= $this->zhiwen($name,$xuehao);
……
}
//引用多次造成的,改成如下include_once('db.php');
//引用多次造成的,改成如下include_once('db.php');
//引用多次造成的,改成如下include_once('db.php');
//引用多次造成的,改成如下include_once('db.php');
有人能帮忙解决下吧
倒是
public function valid()
{
……
include('db.php'); //这个可能是你后加的
……
$contentStr= $this->zhiwen($name,$xuehao);
……
}
把 b.php 中的 include('db.class.php');
改为 include_once('db.class.php');
include('db.php'); 不用改
//引用多次造成的,改成如下include_once('db.php');
把 b.php 中的 include('db.class.php');
改为 include_once('db.class.php');
include('db.php'); 不用改
include_once 是加载过了就不加载
include 是总是加载,不管是否加载过了
所以被多次 include 的文件中不能有 类、函数、常量 的定义,否则就是重复定义了
你的 db.php 中有
include('db.class.php'); //里面含有 db 类的定义
所以当再次 include('db.php'); 时,就会因 db 类已经定义过了,而出错
改成 include_once('db.class.php'); 后就没有这个问题了,因为 db 累的定义只会加载一次
include_once 是加载过了就不加载
include 是总是加载,不管是否加载过了
所以被多次 include 的文件中不能有 类、函数、常量 的定义,否则就是重复定义了
你的 db.php 中有
include('db.class.php'); //里面含有 db 类的定义
所以当再次 include('db.php'); 时,就会因 db 类已经定义过了,而出错
改成 include_once('db.class.php'); 后就没有这个问题了,因为 db 累的定义只会加载一次