为什么我不能在PHP中的类中声明私有变量?

Alb*_*Gao -1 php mysql

下面的代码给我一个错误:解析错误:语法错误,意外T_VARIABLE,期望第4行T_FUNCTION

 <?php
  class mydb
  {     
    $mydblink = mysqli_connect( 'localhost:3306','root','123qweasdzxc','test' );         
     public static function checklink() {
        if ( !$mydblink ) {
            die('Could not connect to MySQL: ' . mysql_error()); 
        }
        echo 'Connection OK';
        mysql_close($mydblink);
    }

                  }
  mydb::checklink();
Run Code Online (Sandbox Code Playgroud)

但将$ mydblink移入函数使其工作,

  <?php
  class mydb
  {     
    public static function checklink() {
        $mydblink = mysqli_connect( 'localhost:3306','root','123qweasdzxc','test' );         

        if ( !$mydblink ) {
            die('Could not connect to MySQL: ' . mysql_error()); 
        }
        echo 'Connection OK';
        mysql_close($mydblink);
    }

  }
  mydb::checklink();
Run Code Online (Sandbox Code Playgroud)

为什么?这是否意味着我不能在PHP中的类中声明私有变量?

nva*_*sch 5

您可以声明一个私有变量,但不能在类属性声明中执行mysql_connect之类的代码.您只能设置基元.

class MyDB {
  private $dbc;
  private $someInteger = 4; // you can do this
  private $someArray = array(); // and this.

  public function __construct()
  {
    $this->dbc = new mysqli('localhost', 'user', 'pass', 'db');
  }

  public function getDbc()
  {
    return $this->dbc;
  }

}

$system = new MyDB();
//$system->getDbc()->soSomethingWithMyDb(); 
Run Code Online (Sandbox Code Playgroud)

另请注意,不推荐使用mysql_.我建议你使用mysqli_或PDO