① php子类可以继承和访问父类的私有属性和方法吗
你这样理解也可以,当父类有私有的方法和属性,子类是继承不到的,所以子类不能访问父类的私有方法和属性。java
特性,private:类中只要限定为private的成员,只能被这个类本身访问
② php 子类中如何调用父类的变量和方法
<?php class A{ public $a1='a1'; protected $a2='a2'; function test(){ echo "hello!<hr/>"; } } class B extends A{//若A类和B类不在同一文件中 请包含后(include)再操作 public $a1='b1'; function test2(){ $this->test(); parent::test();//子类调用父类方法 } function test() { echo $this->a1.','; echo $this->a2.','; echo "b2_test_hello<hr/>"; } } $a = new B(); $a->test();//b1,a2,b2_test_hello $a->test2();//b1,a2,b2_test_hello//hello! ?>方法的调用:$this->方法名();如果子类中有该方法则调用的是子类中的方法,若没有则是调用父类中的
parent::则始终调用的是父类中的方法。
变量的调用:$this->变量名;如果子类中有该变量则调用的是子类中的,若没有则调用的是父类中的
③ PHP中,为什么子类可以访问父类的私有属性,而且可以直接调用
你写的不对哦。
按你写的,
name
是子类是属性,而不是父类的。
这样:
<?php
class
Person
{
private
$name="zhangsan";
}
class
Man
extends
Person
{
}
$m
=
new
Man();
//$m->name="zhangsan";
echo
$m->name;
?>
④ php 子类创建了个属性如何调用父类属性的值
classbextendsa{
public$b;
function__construct(){
$this->b=$this->attribute;
}
}
在属性定义阶段不能使用你说的那种语句,如果你想使用那种赋值语句的话可以放到构造函数里面
⑤ php中子类怎么调用父类的变量
实例:
<?phpclassA{
public$a1='a1';
protected$a2='a2';
}
classBextendsA{
//若A类和B类不在同一文件中请包含后(include)再操作
public$a1='b1';
functiontest(){
echo$this->a1.',';echo$this->a2.',';echo"b2_test_hello<hr/>";
}
}
$a=newB();
$a->test();
//b1,a2,b2_test_hello
$a->test2();//b1,a2,b2_test_hello//hello!
?>
变量的调用:$this->变量名;如果子类中有该变量则调用的是子类中的,
若没有则调用的是父类中的
⑥ PHP子类怎么调用父类的属性
<?php
class Perpon {
private $Pid;
private $Pname;
private $Page;
private $Psex;
private $Pbirthday;
public function __construct($Pid,$Pname,$Page,$Psex,$Pbirthday)//PHP5中间的构造函数
{ $this->Pid=$Pid;
$this->Pname=$Pname;
$this->Page=$Page;
$this->Pbirthday=$Pbirthday;
echo "创建了一个对象"."<br>";
}
public function __set($name,$value) {
$this->$name=$value;
}
function show(){
echo ("我的姓名:$this->Pname,我的年龄:$this->Page,我的性别是:$this->Psex,我的生日是$this->Pbirthday <br>"); }
public function __get($name) { return $name; }
public function dining() { echo "$this->Pname 正在吃饭 <br>"; }
public function shuohua() { echo "$this->Pname喜欢说话 <br>"; }
public function gaosu() { echo "我的姓名叫做$this->Pname <br>"; }
public function IT() { echo $this->Pname."的工作是IT行业 <br>"; }
}
class Student extends Perpon {
public function __construct()//PHP5中间的构造函数
{ echo "子类的构造函数"; }
public function IT()//PHP5中间的构造函数
{ parent::IT();
echo $this->Pname."的工作是学生<br>";
}
}
$perpon=new Perpon('1','zhangsan','18','男','9月23'); $perpon->show(); $perpon->dining(); $perpon->shuohua(); $perpon->gaosu(); $perpon->IT();
echo "<hr>";
$student=new Student(); $student->IT();?>
调不到的原因是:
private $Pname;
记住:private只能自己调用,其他是不行的,这一点你自己记住即可。
⑦ PHP子类怎么调用父类的属性
父类的Pname
是
private
类型,也就是私有的只能父类自己的
函数调用
,子类以及外部是无法调用的。
如果这个变量只允许本类方法调用
应该用
private
方式调用,如果允许本类以及子类调用应该用
protected
保护)修饰,如果希望外部调用则应该用
public
公开修饰。这三个关键词对函数同样有效。
我把php.net关于这个的说明放在下面参考资料里面了,你可以仔细看下。
⑧ php如何通过子类继承父类共有方法访问父类私有属性
在父类中加个public方法,
如private
$aaa
=
'test';
public
function
getAAA(){
return
$this->aaa;
}
在子类中调用parent::getAAA();就可以获得父类私有属性
当然如果你想获取多个,可以改成动态变量名,
getAAA($v){
return
$this->{$v};
}