本文目录一览:
- 1、php中self的真正含义是什么?为什么可以调用父类 的成员和方法? - PHP进阶讨论
- 2、php继承一个父类,如何自动执行父类方法
- 3、PHP子类怎么调用父类的属性
- 4、php中子类怎么调用父类的变量?
- 5、PHP中,为什么子类可以访问父类的私有属性,而且可以直接调用
- 6、php子类可以继承和访问父类的私有属性和方法吗
php中self的真正含义是什么?为什么可以调用父类 的成员和方法? - PHP进阶讨论
self对应static$this是非static这两者总和相当于Java里面的thisparent相当于Java里面的super我问你
你要在子类中执行父类的构造器怎么执行?TankMe
发表于
2009-9-9
16:19[i]self是这个类。this是这个类现在创建的对象。而不是单纯的只指静态非静态。self从理论上在php里是可以调用任何东西的。。。php6可以支持直接调用静态和非静态。因为他是和::符配合的。。。只要是这个类里面的任何成员和方法都能调用。。。你把php所有错误提示关闭。就可以执行。。。我记得我以前测试过一下的。。。php5貌似会抛出一个warring。。我忘记当时测试的结果了。但是从文档上看到得这理论是可行的
php继承一个父类,如何自动执行父类方法
你在父类写一个成员函数 然后子类继承 创建子类对象的时候 可以点出来父类的成员函数
比如
Student zs = new Student();
zs.SayHello() //点出来的是从父类的继承来的成员函数
输出结果为父类的-我是人类
public class Person
{
public void SayHello() //这只是父类的SayHello
{
echo"我是人类";
}
}
public class Student:Person //已经继承了Person父类
{
//我什么都没写
}
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中子类怎么调用父类的变量?
实例:
?php class A{
public $a1='a1';
protected $a2='a2';
}
class B extends A{
//若A类和B类不在同一文件中 请包含后(include)再操作
public $a1='b1';
function test() {
echo $this-a1.','; echo $this-a2.','; echo "b2_test_hellohr/";
}
}
$a = new B();
$a-test();
//b1,a2,b2_test_hello
$a-test2();//b1,a2,b2_test_hello//hello!
?
变量的调用:$this-变量名;如果子类中有该变量则调用的是子类中的,
若没有则调用的是父类中的
PHP中,为什么子类可以访问父类的私有属性,而且可以直接调用
你写的不对哦。
按你写的,
name
是子类是属性,而不是父类的。
这样:
?php
class
Person
{
private
$name="zhangsan";
}
class
Man
extends
Person
{
}
$m
=
new
Man();
//$m-name="zhangsan";
echo
$m-name;
?
php子类可以继承和访问父类的私有属性和方法吗
你这样理解也可以,当父类有私有的方法和属性,子类是继承不到的,所以子类不能访问父类的私有方法和属性。java
特性,private:类中只要限定为private的成员,只能被这个类本身访问