passing variables from a protected function to a public function inside the same class in php

I have a class and two functions inside it as follows:

class MyClassName
{
    protected function myFunction1()
    {
        // some code here
        return $something;
    }
    public function myFunction2()
    {
        // some code here
        return $somethingElse;
    }
}

What I need to do is define a variable in myFunction1() and then use it in myFunction2(). What is the best practice to do that?

Upvotes: 0

Views: 658

Answers (3)

NorthBridge
NorthBridge

Reputation: 674

Make it a class property

class MyClassName
{
    private $property;

    public function __construct() {
        $this->myFunction1();
    }

    protected function myFunction1()
    {
        // some code here
        $this->property = 'an apple';
    }
    public function myFunction2()
    {
        // some code here
        return $this->property;
    }
}

Now test it:

$my_class = new MyClassName();
$something = $my_class->myFunction2();
echo $something;

Upvotes: 0

hoangvu68
hoangvu68

Reputation: 865

class MyClassName
{
    public $var = 0;
    protected function myFunction1()
    {
        // some code here
        $this->var = ...;
        return $something;
    }
    public function myFunction2()
    {
        // some code here
        echo $this->var;
        return $somethingElse;
    }
}

Upvotes: 1

qaztype
qaztype

Reputation: 73

Actually vars should be defined out of the function and then set a value. Then can be modified over all the script, by doing this->var

Upvotes: 0

Related Questions