首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP对象和类错误

PHP对象和类错误
EN

Stack Overflow用户
提问于 2013-11-29 21:46:31
回答 2查看 80关注 0票数 2

在我开始的PHP类中,我们的第一步是对象和类。我的作业问题是:

  1. 创建(a)名为“Human”的父类(又名“超类”),其中一个变量名为“腿”,一个函数(又名“方法”)名为“游走”,(b)将“腿”的默认值设置为2,以及(c)使“步行”函数显示“人可以行走”。当它被称为。
  2. 创建(a)一个名为“Kids”的子类(也称为“子类”),它将继承“Human”类的所有成员;(b)创建孩子类的一个变量“hands”,并将其默认值设置为2;(c)创建一个函数,名为“跳转”,该函数将显示一条消息“一个孩子可以跳”。
  3. 创建名为"Kuma“的”Kids“类的对象,(c)使用”Kuma“对象显示腿数并调用”walk“函数。

结果应打印:

两条腿

人类可以走路。

两只手

孩子会跳。

到目前为止,这是我的密码。我对第三条的说明很难理解。

代码语言:javascript
复制
class Human {
var $legs = 2;
var $content = "<p>Humans can walk.</p>";

function Walk($Kuma) { 
    echo $this->legs . " legs";
    echo $this->content;
}
}

class Kids extends Human {
var $hands = 2;
var $content2 = "<p>A kid can jump.</p>";

function Jump($Kuma) {
    echo $this->hands;
    echo $this->content2;

}
}

$obj = new Kids(Kuma);
$obj -> Walk(Kuma);

?>
EN

回答 2

Stack Overflow用户

发布于 2013-11-29 22:04:13

代码语言:javascript
复制
class Human {
    var $legs = 2;
    var $content = "<p>Humans can walk.</p>";

    function Walk() { 
       echo $this->legs . " legs";
       echo $this->content;
    }
 }

 class Kids extends Human {
     var $hands = 2;
     var $content2 = "<p>A kid can jump.</p>";

     function Jump() {
        echo $this->hands;
        echo $this->content2;
     }
 }

$kuma = new Kids(); // creating OBJECT kuma 

$kuma -> Walk(); // calling the walk function

?>

例如:

代码语言:javascript
复制
$object = new Human(); // creating OBJECT named object of CLASS Human
票数 0
EN

Stack Overflow用户

发布于 2013-11-30 00:00:18

在你的例子中,你做了一些奇怪的事情。例如,从您给出的说明中,我不知道为什么要使用Walk和Jump方法输出有关手和腿的信息。

以下是我的建议:

代码语言:javascript
复制
class Human {
    public $legs = 2;
    public function walk() { 
        echo 'Human can walk.';
    }
}


class Kids extends Human {
    public $hands = 2;
    public function jump() {
        echo 'A kid can jump.';
    }
}

$Kuma = new Kids();
echo $Kuma->legs . " legs\n";
$Kuma->walk();
echo "\n";
echo $Kuma->hands . " hands\n";
$kuma->jump();

有几件事要注意:

  • 我在声明变量和方法范围(在本例中为public)时使用了良好的编码实践。老实说,良好的编码实践还会将类属性(腿/臂)声明为protected,并且只有通过getter/setter才能使用。
  • 我没有在类中强制执行任何HTML格式(实际上,我只是在我的示例中使用行结束字符,可以用HTML换行符、段落或任何您可能需要的内容来替代)。在调用方法时,类本身可能甚至不会负责输出,除非是显式要求的。(我只需对原始文本执行return,并让调用方确定输出的格式)。
  • 我从步行/跳跃中取出手/腿输出。这与这些方法无关,不应混为一谈。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20293780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档