类中的PHP函数 - 在类中调用函数

时间:2015-01-15 17:11:38

标签: php

我有这样的界面:

interface General {
    public function getFile($file);

    public function searchFile($to_search);
}

我有一个班级,如下:

class Parent implements General {


    public function getFile($file) {
       $loaded = file($file);
   }

    public function searchFile($to_search) {
    $contents = $this->getFile(); // doesn't work because I need the $file from get_file()!
    // searches file
    // returns found items as collection
    }
}

然后在代码中,我可以做类似......

$file = "example.txt";
$in = new Parent();
$in->getFile($file)
$items = $in->searchFile('text to search');
foreach($item as $item) {
    print $item->getStuff();
} 

我所看到的所有参考类中的另一个函数的例子都没有参与。

如何从getFile($ file)引用$文件,以便我可以加载文件并开始搜索?我想通过界面实现它,所以不要打扰更改界面。

2 个答案:

答案 0 :(得分:2)

将文件作为构造函数参数传递,并将其内容保存为属性。

class Parent implements General {
    private $file;
    public function __construct($file) {
        $this->file = file($file);
    }
    public function searchFile($to_search) {
        $contents = $this->file;
        // proceed
    }
}

实际上你不需要做那些构造函数,只需让getFile函数将结果保存在$this->file中。我认为它作为构造函数更有意义:p

答案 1 :(得分:1)

由于您已经从课外调用getFile(),如何将其作为类属性加载,以便您可以使用searchFile()方法轻松访问它:

class Parent implements General {

    protected $loaded;

    public function getFile($file) {
        $this->loaded = file($file);
    }

    public function searchFile($to_search) {
        $contents = $this->loaded;
        // searches file
        // returns found items as collection
    }
}