为了账号安全,请及时绑定邮箱和手机立即绑定

Call to undefined function doIt()

Call to undefined function doIt()

PHP
开心每一天1111 2019-03-18 15:24:15
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~

查看完整回答
反对 回复 2019-03-18
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

额。。。求大神解释。可以像提问说的那样 $fb.doIt() 这样来调用方法名?

查看完整回答
反对 回复 2019-03-18
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

你好,php里面调用类的方法有两种
1)$obj->function()
2)$obj::function() 这个要将方法定义为静态方法

查看完整回答
反对 回复 2019-03-18
  • 4 回答
  • 0 关注
  • 387 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信