Мои переменные не работают, и я не уверен, почему.Я не определил $ 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 будет одинаковой в обоих случаях.Почему становится два?