ホームページ > バックエンド開発 > PHPチュートリアル > なぜこの変数は null なのでしょうか

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

WBOY
リリース: 2016-06-23 14:02:12
オリジナル
910 人が閲覧しました

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 を直接使用してみてはいかがでしょうか

では、見てください

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート