В PHP: Как вызвать переменную $ внутри одной функции, которая была определена ранее внутри другой функции?

Я только начинаю с объектно-ориентированного PHP, и у меня есть следующая проблема:

У меня есть класс, который содержит функцию, содержащую определенный скрипт. Мне нужно вызвать переменную, расположенную в этом скрипте, в другой функции далее в том же классе.

Например:

class helloWorld { function sayHello() { echo "Hello"; $var = "World"; } function sayWorld() { echo $var; } } 

в приведенном выше примере я хочу вызвать $ var, который является переменной, которая была определена внутри предыдущей функции. Это не работает, так как я могу это сделать?

Related of "В PHP: Как вызвать переменную $ внутри одной функции, которая была определена ранее внутри другой функции?"

вы должны создать var в классе, а не в функции, потому что когда функция заканчивается, переменная будет отменена (из-за прекращения функции) …

 class helloWorld { private $var; function sayHello() { echo "Hello"; $this->var = "World"; } function sayWorld() { echo $this->var; } } ?> 

Если вы объявляете переменную public , она доступна непосредственно всем другим классам, тогда как если вы объявите переменную как private , она будет доступна только в том же классе.

 <?php Class First { private $a; public $b; public function create(){ $this->a=1; //no problem $thia->b=2; //no problem } public function geta(){ return $this->a; } private function getb(){ return $this->b; } } Class Second{ function test(){ $a=new First; //create object $a that is a First Class. $a->create(); // call the public function create.. echo $a->b; //ok in the class the var is public and it's accessible by everywhere echo $a->a; //problem in hte class the var is private echo $a->geta(); //ok the A value from class is get through the public function, the value $a in the class is not dicrectly accessible echo $a->getb(); //error the getb function is private and it's accessible only from inside the class } } ?> 

Сделать $var переменной класса:

 class HelloWorld { var $var; function sayHello() { echo "Hello"; $this->var = "World"; } function sayWorld() { echo $this->var; } } 

Я бы не стал глобальным, если только к нему не понадобилось много другого кода; если это просто что-то, что нужно использовать в одном классе, то это идеальный кандидат для члена класса.

Если ваш метод sayHello() впоследствии вызывал sayWorld() , альтернативой было бы передать аргумент этому методу.