ホームページ  >  記事  >  バックエンド開発  >  なぜこの変数は null なのでしょうか

なぜこの変数は null なのでしょうか

WBOY
WBOYオリジナル
2016-06-23 14:02:12836ブラウズ

class my_connect{       private $conn;       private  function get_conn() {            $conn=new mysqli('localhost',"root","","test",3306);            $conn->set_charset("utf8");            return $conn;        }        private  function __destruct() {            if(isset($this->conn)){                $this->conn->close();            }        }        static function get_instance() {            $new_conn=new my_connect() ;            $conn=$new_conn->get_conn() ;            return $conn;        }    } 当我执行 $conn=my_connect::get_instance(); 到析构函数的时候 $conn变量为null也就是没有执行  $this->conn->close();


ディスカッション (解決策) に返信

設定するとき、$this-> を使用する必要がありますか?

明らかにこのステップは間違っています。このステップは変数が定義されているかどうかを判断します。private $conn;、値はありませんが、すでに定義されています

if(isset($this->conn)){


それを変更するだけです
if($this->conn){

それは間違って見ました。 。 。 。

get_conn はプライベート メソッドです。

private  function get_conn


public  function get_conn


に変更できます
このクラスは最適化できますが、やはり最適化する必要があります

mysqli を使用したことがないので、mysql_connect を直接使用してみてはいかがでしょうか

では、見てください

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。