PHP-可通过类访问的私有变量
我正在处理一个PHP类,它看起来像这样:PHP-可通过类访问的私有变量,php,class,private-members,Php,Class,Private Members,我正在处理一个PHP类,它看起来像这样: <?php class xyz{ public $car1; public $car2; private $owner; public function __construct ($type){ $this->car1 = $type; $this->owner = "John";
<?php
class xyz{
public $car1;
public $car2;
private $owner;
public function __construct ($type){
$this->car1 = $type;
$this->owner = "John";
return $this->owner();
}
private function owner(){
return "Owner of ".$this->car1." is ".$this->owner;
}
如何实现预期结果,如何保护私有变量
所有的帮助和建议将不胜感激
谢谢
$car=new xyz(“sedan”);
时,因此您返回的任何内容都是无效的。在类中创建其他方法以返回值owner
方法设置为public,并执行`echo$car->owner();”。该方法返回一个字符串,然后回显该字符串。简单var\u dump($car);
,就会发生这种情况。如果您想控制对象如何转换为字符串,则需要重写\uu toString
方法(请参阅)$car->owner
或$car->owner()
,您应该会看到错误$car=new xyz(“sedan”);
时,因此返回的任何内容都不会返回。在类中创建其他方法以返回值owner
方法设置为public,并执行`echo$car->owner();”。该方法返回一个字符串,然后回显该字符串。简单var\u dump($car);
,就会发生这种情况。如果您想控制对象如何转换为字符串,则需要重写\uu toString
方法(请参阅)$car->owner
或$car->owner()
,您应该会看到错误您不能从构造函数返回。只需回显
$car->owner()
,或者可能使用\uuToString()
你不能回显一个类,你应该在它里面有一个函数。@p你可以回显一个类,但是你需要定义\u toString
魔法方法。哦,很高兴知道,谢谢!保护私有变量
什么?你不能从构造函数返回。只要回显$car->owner()
或者可能使用\u toString即可()
你不能回显一个类,你应该在它里面有一个函数。@Phiter你可以回显一个类,但是你需要定义\uu-toString
魔法方法。哦,很高兴知道,谢谢!保护私有变量
免受什么影响?@3,我使用的是print\r,不是echo。但是\uu-toString有效!有什么建议如何保护私有数据不被获取吗在类外访问?在类外不能访问私有数据,这是OOP基础。@3,我使用的是print\r,而不是echo。但是,toString可以工作!有什么建议可以防止私有数据在类外访问?在类外不能访问私有数据,这是OOP基础。
<?php
$car = new xyz("Sedan");
echo $car; //Expected result: Owner of Sedan is John.
?>
Object ( [car1] => Sedan [car2] => "" [owner:xyz:private] => John )