Php 为什么属性和变量之间没有区别?
如果我将变量名或属性名从Php 为什么属性和变量之间没有区别?,php,Php,如果我将变量名或属性名从$foo更改为dosindoSomething()中的其他内容,则运行正常 为什么我需要在这里保持属性名和变量名不同 当其中一个属性名为$foo时,为什么$foo为NULL class someclass { public $foo = 'abcd'; public function __construct($data) { $this->foo = $data; } public function doSo
$foo
更改为dosindoSomething()
中的其他内容,则运行正常
为什么我需要在这里保持属性名和变量名不同
当其中一个属性名为$foo
时,为什么$foo
为NULL
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
}
}
到
访问类变量时,需要使用
$this->foo
来获取和设置class属性,需要使用$this->
前缀
将代码更改为
echo $this->foo = $_POST['foo'];
var_dump($this->foo);
这是正确的,它工作得很好。我运行了你的代码,它总是给我相同的结果。您可以在一个或多个函数中使用属性$foo和$foo变量。它总是给我同样的答案
如果$\u POST['foo']=test,则echo$foo=$\u POST['foo'];返回“test”;$foo返回“test”;$somethingelse返回“test” 您正在运行什么版本的PHP,因为这对我来说很好用?请再次仔细阅读问题
echo $this->foo = $_POST['foo'];
var_dump($this->foo);
echo $this->foo = $_POST['foo'];
var_dump($this->foo);