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
?
答案 0 :(得分:2)
您需要使用$this->foo
来获取和设置classes属性
答案 1 :(得分:0)
更改此
echo $foo = $_POST['foo'];
到
echo $this->foo = $_POST['foo'];
var_dump($this->foo);
答案 2 :(得分:0)
访问类变量时,您需要使用$this->
前缀。
将您的代码更改为
echo $this->foo = $_POST['foo'];
var_dump($this->foo);
答案 3 :(得分:0)
这是正确的,它工作正常。我运行你的代码,它总是给我相同的。没有问题,你在一个或多个函数中有属性$ foo和$ foo变量。它总是给我相同的答案。
如果$ _POST ['foo'] = test,那么echo $ foo = $ _POST ['foo'];返回“test”,$ foo返回“test”,$ somethingelse返回“test”;