php獲取子類
⑴ php中父類里調用子類的方法
無解,除非是靜態public方法,function前加static,可以testB::demo2()這樣調用
子類重寫之後的方法父類沒法調用,換句話說,父類咋知道自己會被哪個子類繼承呢,就算你強轉虛表也不一樣,無解的問題
而且父類咋需要調用子類的方法呢,就算你以後實踐中有這樣的需求,也只能說明你設計上不合理
⑵ PHP中如何獲得當前類的名稱,而實例化後獲取子類的名稱
class a{
var $curIns;
function __construct(){
$this->curIns= get_class($this);
}
}
class b extends a{
function __construct(){
parent::__construct();
echo $this->curIns;
}
}
new b(); //這里會輸出b
⑶ php 繼承怎麼調用子類的新方法
這樣不行,也不符合邏輯,因為父類不會知道子類定義了什麼方法,所以,父類去調用子類就不合理。如果還有不懂的話,可以去後盾人學習學習,裡面真的有不錯的資料,相信你可以的
⑷ 關於PHP繼承的問題,父類方法訪問子類屬性
把class b 中的private改成protected 或者public就不出錯了
private 不允許繼承類成員調用
protected 所有繼承類成員都能用
public 所有成員都能調用
⑸ PHP中一個子類繼承父類後,如何獲取父類中的該private聲明的屬性呢
私有屬性 誰都不可見 不能直接用 在子類中不可用
所謂的繼承使子類擁有父類所有的屬性和方法其實可以這樣理解,子類對象確實擁有父類對象中所有的屬性和方法,但是父類對象中的私有屬性和方法,子類是無法訪問到的,只是擁有,但不能使用。
public class A {
private int a;
public int getA(){
return a;
}
public void setA(int a){
this.a=a;
}
}
public class B extends A{
private int b;
public int getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
}
public class C extends B {
private int c;
public int getC() {
return c;
}
public void setC(int c) {
this.c = c;
}
}
那麼當C c1=new C()時。c1可以使用setA()getA()訪問控制從A類中繼承來的私有屬性a;
⑹ php 如何在父類訪問子類的屬性
可以
用$this就可以了。
靜態的屬性直接用類名訪問
⑺ php如何獲取父類下所有子類Id
今天做項目時遇到php如何獲取父類下所有子類Id??,把代碼分享給大家。
復制代碼代碼如下:
functiongetChildrenIds($sort_id)
{
$db=$this->loadDB();
$ids='';
$sql="SELECT*FROMt_deptWHERE`parent_id`='{$sort_id}'";
$query=$db->query($sql);
$result=$query->result_array();
if($result)
{
foreach($resultas$key=>$val)
{
$ids.=','.$val['id'];
$ids.=$this->getChildrenIds($val['id']);
}
}
return$ids;
}
⑻ php 知道父類id查找所有子類id,怎麼寫。
functiongetAllIds($id)
{
$res=mysql_query("select*from`表名`wherefather_id='$id'");
while($row=mysql_fetch_array($res,MYSQL_ASSOC))
{
print_r($row);
getAllIds($row['class_id']);
}
}
⑼ PHP如何在父類中定義子類
<?
class father{
public $name;
public function __construct($name){
$this->name=$name;
}
public function show(){
return "這是".$this->name;
}
}
//子類的定義
class child extends father{
public function test(){
return "這是子類的一個函數";
}
}
//父類實例化
$p = new father("父類");
//子類實例化
$p2 = new child("子類");
echo $p->show();
echo "<br>";
//子類調用父類的函數
echo $p2->show();
echo "<br>";
//子類調用自己的函數
echo $p2->test();
?>
⑽ PHP獲取類名的一個問題(基類獲取子類名)
從父類中獲得子類名稱,並不是不可能,
但是,這樣做嚴重違背設計原則,屬於設計錯誤。設計上不及格。。
應該檢討自己的需求和模型設計。
把具體應用情況說一說,我看看哪裡做扭曲了