我的变量不起作用,我不确定为什么。 我没有将$ 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在两种情况下都是一样的。为什么变成两个?