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 都不允许出现的!
谢谢回答!
但是 我这样写 在升级之前是可以正常执行的
刚才我试着删除private function zhiwen($uid,$xuehao) 里的
include('db.php');
发现 zhiwen函数里对数据库的操作已经不能执行了
只要你的 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);
……
}
public function valid()里的 include('db.php');也是之前都有的
我就是升级了lnmp后 就不能使用了
现在 public function valid()
和 private function zhiwen($uid,$xuehao)
都需要调用使用数据库类
那么怎么能够正常调用 include('db.php');
并使用类库呢?
//引用多次造成的,改成如下include_once('db.php');
//引用多次造成的,改成如下include_once('db.php');
谢谢回答 请问哪个改成include_once('db.php');
//引用多次造成的,改成如下include_once('db.php');
谢谢回答 请问哪个改成include_once('db.php');
两个都改
//引用多次造成的,改成如下include_once('db.php');
谢谢回答 请问哪个改成include_once('db.php');
两个都改
我查了下include_once是避免重复调用的,第二次的调用同一个文件 会自动过滤
但是我第二次那个,也就是private function zhiwen($uid,$xuehao) 这个
也需要调用那个类库啊
现在没调用也没有继承 下面有数据库的操作直接用不了
请问有方法能继承吗?
有人能帮忙解决下吧
倒是
public function valid()
{
……
include('db.php'); //这个可能是你后加的
……
$contentStr= $this->zhiwen($name,$xuehao);
……
}
您好 那要是不能重复调用 请问private function zhiwen($uid,$xuehao)应该怎么使用db的类库啊 谢谢
把 b.php 中的 include('db.class.php');
改为 include_once('db.class.php');
include('db.php'); 不用改
//引用多次造成的,改成如下include_once('db.php');
谢谢回答 请问哪个改成include_once('db.php');
两个都改
那要是不能重复调用 请问private function zhiwen($uid,$xuehao)应该怎么使用db的类库啊 谢谢
把 b.php 中的 include('db.class.php');
改为 include_once('db.class.php');
include('db.php'); 不用改
谈感谢了 可以了
请问是什么原理
为什么里面的不需要改成 include_once 只要修改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 累的定义只会加载一次
谢谢讲解