php类会不会继承变量,PHP函数和变量继承

有人能帮我理解PHP类中的变量/函数继承吗?

我的父类有一个所有子类都使用的函数。然而,每个子类都需要在这个函数中使用它自己的变量。我想静态地调用子类中的函数。在下面的示例中,将显示"world",而不是子类中的值。

有人能解释一下如何让函数在子类中回送值吗?我应该使用接口吗?这与后期静态绑定有关吗(由于使用了5.3.0之前版本的PHP,所以我无法使用它)?

class myParent

{

static $myVar = 'world';

static function hello()

{

echo self::$myVar;

}

}

class myFirstChild extends myParent

{

static $myVar = 'earth';

}

class mySecondChild extends myParent

{

static $myVar = 'planet';

}

myFirstChild::hello();

mySecondChild::hello();

一个接口只定义了需要定义的函数,它不适用于这种情况。后期静态绑定是您想要的,但是正如您所说,您不能使用它。你到底需要这种行为做什么?也许有更好的方法来实现它。

是的,你不能这样做。static $myVar的声明不会以任何方式相互作用,正是因为它们是静态的,是的,如果你有5.3.0,你可以绕过它,但是你没有,所以你不能。

我的建议是只使用一个非静态变量和方法。

我决定在孩子们的静态函数中创建一个"self"实例,然后将变量存储为非静态的。

你可以这样做:

class myParent

{

var $myVar ="world";

function hello()

{

echo $this->myVar."

";

}

}

class myFirstChild extends myParent

{

var $myVar ="earth";

}

class mySecondChild extends myParent

{

var $myVar ="planet";

}

$first = new myFirstChild();

$first->hello();

$second = new mySecondChild();

$second->hello();

此代码打印

earth

planet

I want to call the function in the

child classes statically.

这真的会让你陷入麻烦,让你在一天结束前发疯(可能已经有了)。

我坚决建议使用尽可能少的"static属性/方法,特别是如果您尝试使用继承,至少使用php<5.3

而且,由于php 5.3是一个全新的版本,它可能在几个月前就不能在您的主机服务上使用了…

如果您使用的是php 5.3,那么这个echo语句可以工作:

echo static::$myVar;

但是,由于您不能使用它,所以您唯一的(好的)选择是使hello()函数不是静态的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值