我可以在课堂上定义特质变量吗?

时间:2018-04-20 23:50:13

标签: php traits

当我调用 $ article-> test() - > uri(' test-content')函数时,这是在uri变量的trait中显示test-content但在文章类中,uri变量返回null。如何通过此调用定义 uri 变量?

性状/ Query.php:

trait Query
{
    protected $uri;
    protected $v = 'v1';

    public function uri($uri)
    {
        $this->uri = $uri;
        return $this;
    }

内容/ Article.php

class Article extends Api 
{
    use Query;

    public $content;

    public function __construct() {
        parent::__construct();
    }

    public function test() {
        $this->content = $this->v . ' - ' . $this->uri;
        return $this;
    }

1 个答案:

答案 0 :(得分:1)

当你这样做时

$article->test()->uri('test-content');

它首先调用$article->test()。所以你尚未调用Query::uri()来填写$uri变量。你需要扭转它:

$article->uri('test-content')->test();