在php上返回一个未定义的变量

时间:2015-05-20 04:00:45

标签: php strategy-pattern

以下代码(摘自葡萄牙语http://br.phptherightway.com/pages/Design-Patterns.html中的以下页面)显示了策略的使用。 我的问题是如果没有定义,ArrayOutput的load()方法如何才能返回$ arrayOfData?

interface OutputInterface{
    public function load();
}

class ArrayOutput implements OutputInterface{
    public function load()    {
        return $arrayOfData;
    }
}

class SomeClient{
    private $output;

    public function setOutput(OutputInterface $outputType){
        $this->output = $outputType;
    }

    public function loadOutput(){
        return $this->output->load();
    }
}

$client = new SomeClient();

// Array
$client->setOutput(new ArrayOutput());
$data = $client->loadOutput();

2 个答案:

答案 0 :(得分:1)

请查看以下代码

CArray <SomeClass, SomeClass &> collection;

答案 1 :(得分:1)

它不能。那段代码看起来更像是为了让您了解如何实现该模式。它应该是这样的:

interface OutputInterface {
    public function load();
}

class ArrayOutput implements OutputInterface {

    private $arrayOfData;

    function __construct($array) {
        $this->arrayOfData = $array;
    }

    public function load()    {
        return $this->arrayOfData;
    }
}