我有以下情况。 我有一个没有变量的类,它在构造函数中错误地将值设置为“不存在”的变量。结果是变量是动态创建的,只要类实例存在就可行。
myClass.php
class myClass {
public function __construct($var)
{
$this->var = $var;
}
public function printVar() {
echo $this->var. "</br>";
}
}
tester.php
include("myClass.php");
$myClass = new myClass("variable");
$myClass->printVar();
var_dump($myClass);
当我运行tester.php
时,输出是以下
variable
object(myClass)#1 (1) { ["var"]=> string(8) "variable" }
有谁知道为什么会这样?你能指点我解释这种行为的任何文档引理吗?
是否可以避免像__set()
函数重载这样的东西?
答案 0 :(得分:0)
这是因为php在为其赋值之前不必强制声明。但是你应该总是在类中声明变量,因为它增加了代码的可读性,并且你可以指定变量的可访问性是公共的还是私有的。
答案 1 :(得分:-3)
如果您正在考虑根据您传递的字符串动态创建变量,您可能需要检查$$变量,是的,两次&#39; $&#39;如果我这次正确地解决了你的问题