PHP变量

PHP变量,php,mysql,Php,Mysql,我正在写这个评论课: class Comment { public $id; public $post_id; public $name; public $email; public $website; public $body; public $date; public $ip_address; public $status; function __construct($id) { globa

我正在写这个评论课:

class Comment {

    public $id;
    public $post_id;
    public $name;
    public $email;
    public $website;
    public $body;
    public $date;
    public $ip_address;
    public $status;

    function __construct($id) {

        global $db;

        $resc = $db->query("SELECT * FROM blog_comments WHERE id='$id' LIMIT 1");

        while($row = $db->fetch_assoc($resc)) {
            while ($comment = current($row)) {
                $key = key($row);
                $this->$key = $comment{$key};
                next($row);
            }
        }
    }
}
以下是构造函数中的查询在数据库中运行时将返回的内容:

但当我运行它时,这就是print_r(新注释(1));吐出:

Comment Object
(
    [id] => 1
    [post_id] => 1
    [name] => J
    [email] => j
    [website] => h
    [body] => b
    [date] => 1
    [ip_address] => :
    [status] => 1
)
知道为什么我只得到每个字段的第一个字符吗


谢谢。

当前/下一个是痛苦的,我不确定{}取消引用是怎么回事

为什么不只是:

$resc = $db->query("SELECT * FROM blog_comments WHERE id='$id' LIMIT 1");

while($row = $db->fetch_assoc($resc)) {
    foreach($row as $key=>$value){
       $this->$key = $value;
    }
}

当前/下一个是痛苦的,我不确定{}取消引用是怎么回事

为什么不只是:

$resc = $db->query("SELECT * FROM blog_comments WHERE id='$id' LIMIT 1");

while($row = $db->fetch_assoc($resc)) {
    foreach($row as $key=>$value){
       $this->$key = $value;
    }
}
你想要

$comment[$key]
$comment{$key}将为您提供字符串的第n个字符。由于$key本身是一个字符串,PHP将其转换为整数0,您将得到第一个字符。

您需要的字符

$comment[$key]

$comment{$key}将为您提供字符串的第n个字符。由于$key本身是一个字符串,PHP将其转换为整数0,您将得到第一个字符。

我认为您需要更改这一行:

$this->$key = $comment{$key};
与:


我认为您需要更改这一行:

$this->$key = $comment{$key};
与:


你知道,我一直想知道[]和{}之间有什么区别。非常感谢。是的,这个解决方案非常好。请看mike B的答案,这确实是一个更简洁的答案。我原以为{}会选择一个字符,但却懒得去查找。这里有一个参考:你知道,我一直想知道[]和{}之间有什么区别。非常感谢。是的,这个解决方案非常好。请看mike B的答案,这确实是一个更简洁的答案。我原以为{}会选择一个字符,但懒得去查找。参考资料如下:这些键的整数值是0,这也是字符串第一个字符的索引。这些键的整数值是0,这也是字符串第一个字符的索引。如果你是Perl程序员,有可能吗?有可能你是Perl程序员吗?