我有一个愚蠢的怀疑 我在用户类中将用户名属性设置为私有 但根据规则,私人财产不应该被访问 在Child类中或继承和在类之外但它正在发生 在我的代码中。我只是想知道我做错了什么。
<?php
class User{
private $username;
}
class UserRepository extends User{
public function get(){
return $this->username;
//this should give error can't access private property
}
public function set($username){
$this->username=$username;
//this should give error can't access private property
}
}
$UserReposetry =new UserRepository;
$UserReposetry->username='daulat';//this should give error.
echo $UserReposetry->username;//this should give error.
它应该无法正常工作。
答案 0 :(得分:1)
没办法, 在这里查看代码并查看结果(错误)
<?php
class User{
private $username="aaa";
}
class UserRepository extends User{
public function get(){
return $this->username;
}
}
$UserReposetry =new UserRepository;
echo $UserReposetry->get();//this should give error.
输出:
注意:未定义的属性:第7行的C:\ Users ...........index.php中的UserRepository::$username
(要查看此通知,您必须将错误报告设置为E_ALL)
第7行表示return $this->username;
,尝试使用:: parent关键字
在您的代码中:您只是设置一个新变量。所以不要误解代码正在使用私有成员。