PHP面向对象中的成员变量必须在使用前声明吗?
这是老师写的一个简单的PHP数据库连接类,为什么有些成员变量如($tablename,$link)需要声明,然后$this->调用,而有些则不用声明如($host,$us...
这是老师写的一个简单的PHP数据库连接类,为什么有些成员变量如($tablename,$link)需要声明,然后$this->调用,而有些则不用声明如($host,$user,$pass)等直接使用,搞不明白。
另外,以成员变量$tablename为例,在实例化对象时,是先将参数tbname传给public $table还是直接传给构造方法的参数$tablename直接使用呢? 求解,谢谢大哥。
<?php
class Connect{
public $link = null;
public $tablename;
//构造方法
public function __construct($host,$user,$pass,$dbname,$tablename){
$this->link = mysql_connect($host,$user,$pass) or die("数据库连接失败");
mysql_select_db($dbname,$this->link);
$this->tablename = $tablename;
}
//成员方法 略...
public function __destruct(){
if($this->link){
mysql_close($this->link);
}
}
}
//使用 connect类
$m = new Connect("localhost","root","admin888","mysql","tbname");
?> 展开
另外,以成员变量$tablename为例,在实例化对象时,是先将参数tbname传给public $table还是直接传给构造方法的参数$tablename直接使用呢? 求解,谢谢大哥。
<?php
class Connect{
public $link = null;
public $tablename;
//构造方法
public function __construct($host,$user,$pass,$dbname,$tablename){
$this->link = mysql_connect($host,$user,$pass) or die("数据库连接失败");
mysql_select_db($dbname,$this->link);
$this->tablename = $tablename;
}
//成员方法 略...
public function __destruct(){
if($this->link){
mysql_close($this->link);
}
}
}
//使用 connect类
$m = new Connect("localhost","root","admin888","mysql","tbname");
?> 展开
展开全部
你好,new Connect("localhost","root","admin888","mysql","tbname");
( )内穿的是类需要的参数。
$host和$user和$pass和$db,之所以没有声明为类的一个属性
是因为,你这里有用不上,如果用的上你可以用private 来声明上边的属性,这样才安全
还有你问的参数传递问题,你再去看看类的构造函数的定义以及其在什么时候使用你就会很明了
希望你的问题能解决,望采纳
( )内穿的是类需要的参数。
$host和$user和$pass和$db,之所以没有声明为类的一个属性
是因为,你这里有用不上,如果用的上你可以用private 来声明上边的属性,这样才安全
还有你问的参数传递问题,你再去看看类的构造函数的定义以及其在什么时候使用你就会很明了
希望你的问题能解决,望采纳
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询