在PHP中将变量绑定到超类

在PHP中将变量绑定到超类,php,Php,所以我有两门课: 表格类 <?php class table { protected $id = null; protected $table = null; function __construct() { } function bind($data) { // print_r($data); foreach ($data as $key=>

所以我有两门课:

表格类

<?php
    class table {
        protected $id = null;
        protected $table = null;

        function __construct() {

        }

        function bind($data) {
            // print_r($data);
            foreach ($data as $key=>$value) {
               $this->key = $value;
               //   echo $key."--".$value;
               //     echo $this->$key;
            }
        }
   }
?>
<?php
    class user extends table
    {
        var $username = null;
        var $password = null;
        var $email = null;
        var $table = "user";
    }
?>
相反,它返回:

Array (
    [username] =>
    [password] =>
    [email] =>
    [table] => user

)
有人能告诉我为什么变量没有绑定到超类吗

根据这一点,它应该起作用:

它应该输出:

不,不应该
get_class_vars
返回类中定义的变量,您正在查找实例化的对象属性,因此应该使用:

$objectVars = get_object_vars($user);

foreach
中的
bind
中,您使用的是
$this->key=$value
而不是
$this->{$key}=$value


要获取实例的变量(而不是类的默认值),请使用

我非常严格地建议您更改密码;)
Array (
    [username] =>
    [password] =>
    [email] =>
    [table] => user

)
$objectVars = get_object_vars($user);