方法和属性

时间:2013-09-13 20:03:54

标签: php database oop object config

我对术语很模糊,而且我尝试过搜索 - 但到目前为止还没有更明智。 我正在尝试用PHP学习OOP,我正在尝试编写一个在数据库中存储值/密钥对的配置类。它工作得很好,但不是我希望它工作的方式。

无论如何,这就是我的所作所为:

$config=new Config();
$keyValue=$config->keyName;                      // Get key value
$config->keyName=$newKeyvalue;                   // Set key value
$description=$config->getDescription($keyName);  // get description
$config->setDescription($keyName, $description); // set description

这是我想做的事情(只有最后两行,因为那些是相关的):

$description=$config->keyName->description;     // get description
$config->keyName->description=$newDescription;  // set description

使用_ get()/ _set()设置/获取键值,但如何以相同的方式设置键的“子属性”?

编辑: 解决了它。工作类_ get / _set / _ isset / _unset正常工作在这里:http://pastebin.com/TFAA8Dcq

(注意:完成了很少的错误检查,这个类允许设置动态对象名称,这可能不是世界上最安全的东西)

1 个答案:

答案 0 :(得分:0)

您还需要将“keyName”属性设为类。例如,$config->keyName = new stdClass;允许您设置$config->keyName->property = "something else";

显然,在这种情况下,你不能再将keyName属性直接设置为字符串了。但是,您可以在PHP类中实现__toString魔术方法,以便在将Class隐式处理为字符串时自动返回字符串变量。