class Ball{
const SHAPE = "circular";
public $area = null;
}
class Football extends Ball{
const PI = 3.14;
public $radius;
public function __construct($radius){
$this->radius = $radius;
}
public function doIt(){
$this->area = PI*pow($this->radius,2);
return "the shape of the ball is:".self::SHAPE."the area is:".$this->area;
}
}
$fb = new Football(2.15);
echo $fb.doIt();
详细代码如上,代码编写没有问题,但是就是执行不了,提示Call to undefined function doIt(),不知道怎么回事。
4 回答
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
php 实例化类的方法调用用->表示, $fb.doIt() ;这种写法不能指定对应方法,会将类和方法分离: $fb 是对象,因为此处echo了,所以会先调用魔术方法 __toString() ,然后后面的 doIt() 被识别成函数,而此处未定义函数,所以会提示 Call to undefined function doIt() 。
不然你试试看在类中定义 __toString() 魔术方法并在类外 定义一个函数,函数名为 doIt(),此时 $fb.doIt() 就相当于获取到一个字符串。good luck~
- 4 回答
- 0 关注
- 387 浏览
添加回答
举报
0/150
提交
取消