我明白了:
未定义的变量:密码
未定义的变量:主机
未定义的变量:user
我很好奇为什么我会收到这样的通知, 虽然变量已在类的私有部分中定义。
我不能在成员函数中使用该类的私有数据成员(因为这会破坏整个OOP的概念)?
php文件是:
class data_base //helps handling permissins
{
private $host;
private $user;
private $password;
public function feed_data($hst, $usr, $pwd)
{
$host=$hst;
$user=$usr;
$password=$pwd;
}
public function get_data()
{
$info=array("host"=>" ", "user"=>" ", "password"=>" ");
$info['host']=$host;
$info['user']=$user;
$info['password']=$password;
return $info;
}
}
$user1=new data_base;
$user2=new data_base;
$user1->feed_data("localhost", "root", ""); //enter details for user 1 here
$user2->feed_data("", "", ""); //enter details for user 2 here
$perm_add=$user1->get_data();
$perm_view=$user2->get_data();
答案 0 :(得分:4)
在PHP中,您必须将属性称为属性
$this->host;
// instead of
$host;
与java $host
中的示例不同,总是一个局部变量,因此在这里未定义。
作为旁注:你可以写
$info=array("host"=>" ", "user"=>" ", "password"=>" ");
$info['host']=$host;
$info['user']=$user;
$info['password']=$password;
return $info;
as
return array(
'host' => $this->host,
'user' => $this->user,
'password' => $this->password
);
它很短且非常可靠(不需要临时变量)
答案 1 :(得分:2)
在PHP中,要访问实例变量,您需要使用$this->varname
只有$varname
始终是方法的本地变量。