【发布时间】:2011-12-31 02:56:21
【问题描述】:
谁能告诉我原因:
class foo {
function __construct() {
foreach($_GET as $get_var => $val) {
$this->$get_var = $val;
}
foreach($_POST as $post_var => $val) {
$this->$post_var = $val;
}
$this->test = "test";
}
}
生成并清空对象,即
object(foo)#1 (0) {
}
还是:
class foo {
public $post;
public $get;
function __construct() {
foreach($_GET as $get_var => $val) {
$this->get->$get_var = $val;
}
foreach($_POST as $post_var => $val) {
$this->post->$post_var = $val;
}
}
}
工作得很好,即:
object(foo)#1 (2) {
["post"]=>
NULL
["get"]=>
object(stdClass)#3 (2) {
["fred"]=>
string(4) "fish"
["joe"]=>
string(6) "bloggs"
}
}
这似乎只是 PHP 5.3.x 中的一个问题,但它在我们工作的机器上的 5.2.x 中有效。是 PHP 配置问题还是我遗漏了什么?我查看了 Classes and Objects 文档,但什么也没看到。
这对这个类来说不是什么大问题,但是当涉及到构建数据库类时,这意味着更多的工作。
【问题讨论】:
-
你应该先声明你的变量。总是。
标签: php class properties