可以在构造函数中调用函数吗?PHP

可以在构造函数中调用函数吗?PHP,php,function,constructor,call,Php,Function,Constructor,Call,可以在构造函数中调用函数吗 例如: class Foo { public $bars = array(); public function __construct($string) { fetchBars($string); } public function fetchBars($string) { $folder = opendir($string); while (false !== ($

可以在构造函数中调用函数吗

例如:

class Foo
{
    public $bars = array();


    public function __construct($string)
    {
        fetchBars($string);
    }

    public function fetchBars($string)
    {
        $folder = opendir($string);
        while (false !== ($bar = readdir($folder))) 
        {
            $this->bars[] = $bar;
        }
        closedir($folder);
    }
}
我展示的示例不起作用。我试图找出是否可以在构造函数中使用函数,但我找不到awnser。我知道我可以在构造函数中硬写函数,但最终我会得到双重代码。如果没有其他选择,我会这么做,但如果有其他选择,请随意分享您的知识

提前感谢


是的,这是可能的,但是您需要使用$this关键字,除非函数是全局的并且在任何类之外

class Foo
{
    public $bars = array();

      public function __construct($string)
        {
            $this->fetchBars($string);
                 myfunction();  // this can be called without $this
        }

 public function fetchBars($string)
    {
        $folder = opendir($string);
        while (false !== ($bar = readdir($folder))) 
        {
            $this->bars[] = $bar;
        }
        closedir($folder);
        }
    }

// this function is outside class. so can be used without $this.
function myfunction()
{
echo "foo";
}