> 백엔드 개발 > PHP 튜토리얼 > 为甚麽这个变量为null

为甚麽这个变量为null

WBOY
풀어 주다: 2016-06-23 14:02:12
원래의
889명이 탐색했습니다.

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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿