本文目錄一覽:
- 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的成員,只能被這個類本身訪問
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/309842.html