首页 > 解决方案 > 在 OOP 中调用和输出具有 echo 属性的方法

问题描述

有这样的代码构造

abstract class Main{
    protected $name = 'Main';

    public function callMe()
    {
        return $this->foo();
    }

    public function foo()
    {
        throw new Exception('Foo Not Found');
    }

    protected function getName()
    {   
        return $this->name;
    }
}

class One extends Main
{
    public function foo()
    {
        $name = $this->getName();
        echo "Hello from class ".$name."\n";
    }

    public function getName()
    {
        echo "Two";
    }
}

我创建一个对象并调用该callMe ()方法

$one = new One();
$one->callMe();

但她带给我

TwoHello from class

但不是

Hello from class Two

c 返回所有规则的工作,

public function getName ()
{
    return 'Two';
}

但是为什么 echotwo在表达式之前打印?如果它应该分配给一个变量?

标签: php

解决方案


推荐阅读