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获取类名的一个问题(基类获取子类名)
从父类中获得子类名称,并不是不可能,
但是,这样做严重违背设计原则,属于设计错误。设计上不及格。。
应该检讨自己的需求和模型设计。
把具体应用情况说一说,我看看哪里做扭曲了