OOPHP继承查询
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了OOPHP继承查询,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1429字,纯文字阅读大概需要3分钟。
内容图文
![OOPHP继承查询](/upload/InfoBanner/zyjiaocheng/794/714e40da410f4dd6a8f7a7867ce9fedf.jpg)
据我了解,私有成员只能在拥有它的类中访问,而不能在外部访问,即使是来自该类的子级.
我写了一个小小的测试脚本,试图在我脑海里帮助坚定这一切,但它没有输出错误,访问私人会员很好,我不知道为什么!请有人帮我这个吗?
这是代码:
class Car extends vehicle
{
protected $make;
public function showCar($col, $eng, $mak)
{
$this->colour = $col;
$this->engine = $eng;
$this->make = $mak;
$this->details($this->colour, $this->engine, $this->make);
}
}
class vehicle
{
private $colour;
protected $engine;
public function details($c, $e, $m)
{
echo "{$c} {$e} {$m}";
}
}
$output = new Car;
$results = $output->showCar("red", "v12", "ferarri");
解决方法:
你的假设不正确. Car :: showCar没有设置vehicle :: $color的值;它在任何人都可以访问的对象上设置一个名为color的(公共)属性.这就是PHP的工作原理:严格要求您声明属性(以及它们的可访问性级别);你可以动态创建和使用它们.
要确定情况确实如此,请更改代码,以便细节不会直接提供相关值,而是将它们从对象中拉出来:
public function showCar($col, $eng, $mak)
{
$this->colour = $col; // creates a new public property named "colour"
$this->engine = $eng; // sets vehicle::$engine
$this->make = $mak; // sets car::$make
$this->details();
}
public function details()
{
echo "{$this->colour} {$this->engine} {$this->make}";
}
在此详细实现中,对$this->引擎的引用解析为vehicle :: $engine,因为该属性已正式声明.由于showCar没有为该属性赋值,因此输出中不会显示“红色”.如果您然后完全删除声明私有$颜色,那么$this->颜色将解析为动态创建的属性,程序将恢复其原始行为.
内容总结
以上是互联网集市为您收集整理的OOPHP继承查询全部内容,希望文章能够帮你解决OOPHP继承查询所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。