如何链接方法并将其返回到方法中? OOP,PHP

时间:2014-02-07 20:02:23

标签: php oop

我需要重建头部脚本和链接,所以我想创建一个可以用于将来引用的类。

我开始喜欢:

class HeadClas{


    public static $headprint;


    function __construct(){

        $this->headprint = "";

    }

    function addLinks(){
        $this->headprint .= "addLinks";
        return $this;
    }

    function addMeta(){
        $this->headprint .= "addMeta";
        return $this;
    }


    function printHead(){
        return $this->headprint;
    }
}

在上述情况下,我需要做

$print = new HeadClas;

$print->addLinks()->addMeta();

我想做

$print = new HeadClas;
$print->printHead();

我确实尝试了

function printHead(){
    return  $this->addMeta()->addLinks();
}

但不是我需要做的

$print->printHead()->headprint;

我在这里缺少什么? 任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

首先,您应该使$headprint字段非静态。使其静态使其成为所有未来实例的相同参考,这将导致不良结果。

printHead()打印该字段的内容,如方法名称所示。

class HeadClass {
    public $headprint;

    function __construct() {
        $this->headprint = "";
    }

    function addLinks() {
        $this->headprint .= "addLinks";
        return $this;
    }

    function addMeta() {
        $this->headprint .= "addMeta";
        return $this;
    }


    function printHead() {
        $this->addLinks()->addMeta();
        echo $this->headprint;
    }
}

$printer = new HeadClass();
$printer->printHead();