下面的代码给我一个错误:解析错误:语法错误,意外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中的类中声明私有变量?
您可以声明一个私有变量,但不能在类属性声明中执行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