小白求助!!!
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 累的定義只會載入一次
謝謝講解