PHP 7 Проблема переменной области: глобальный или $ this-> или что использовать вместо глобального? - PullRequest
0 голосов
/ 05 мая 2019

Мои переменные не работают, и я не уверен, почему.Я не определил $ var как статический, поэтому, когда я ссылаюсь на него как на глобальный, или на $ this-> var, это должна быть та же самая переменная, верно?За исключением случаев, когда это не так.

Некоторые люди говорят, что «глобальный» не должен использоваться, вместо этого передайте параметры в функцию.Но что, если мне нужно работать с 20 переменными в функции экземпляра?Я действительно передаю 20 параметров?Разве это не становится нечитаемым и неясным?

Я использую PHP 7.2.8.на XAMPP, но это не очень важно.

<?php
class Test{

    public $var;
    public function __construct($param)//1
    {
        global $var; //5
        $this->var = $param; //1
        $var = $param * 5; //5
    }

    public function wtf(){
        global $var; //5
        $foo = $this->var; //1

        echo "var: $var <br>";
        echo "this var: $foo <br>";
    }
}

$foo = new Test(1);
$foo->wtf();
$value = $foo->var;
echo "Value: $value";
?>

Output:

var: 5
this var: 1
Value: 1

Я ожидаю, что переменная $ var будет одинаковой в обоих случаях.Почему становится два?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...