Question

Is it possible to call a function within a constructor?

For example:

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);
    }
}

The example i've shown does not work. I've tried to find out if it is possible to even use a function within a constructor but I couldn't find the awnser. I know that I can just hard-write the function within the constructor, but then I end up with double code. If there is no other option, I will do so, but if there is an other option feel free to share your knowledge!

Thanks in advanced!

Kind regards

Était-ce utile?

La solution

Yes ,its possible but you need to use $this keyword unless function is global and outside any class.

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";
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top