class someclass
{
public $foo = 'abcd';
public function __construct($data)
{
$this->foo = $data;
}
public function doSomething()
{
$user = $_POST['username'];
echo $foo = $_POST['foo']; // This output correct value
var_dump($foo); // This Output NULL
$somethingelse = $_POST['foo'];
var_dump($somethingelse); // Output as expected
}
}
如果我改变我的变量名或属性名从$foo
到其他东西在doSomething()
做它运行良好。
为什么我需要保持属性名和变量名在这里不同?
为什么$foo
是NULL
,而其中一个属性名是$foo
您需要使用$this->foo
来获取和设置classes属性
change this
echo $foo = $_POST['foo'];
echo $this->foo = $_POST['foo'];
var_dump($this->foo);
访问类变量时需要使用$this->
前缀。
将代码改为
echo $this->foo = $_POST['foo'];
var_dump($this->foo);
这是正确的,它工作良好。我运行了你的代码,结果总是一样。在一个或多个函数中使用属性$foo和$foo变量是没有问题的。它总是给我同样的答案。
如果$ _POST [' foo '] =测试然后echo $ foo = $ _POST["foo");$foo返回"test", $somethingelse返回"test";