这是我有点挑剔,但我真的很喜欢它的易用性$_SESSION
。所以我想知道是否有办法让我在数据库中的行像这样工作。对我来说创建一个超全局很容易,例如$_DATA['address']
返回保存在当前登录用户的数据库中的地址。明显的问题是,当我向它写入内容时,$_DATA['whatever']
它会自动写入数据库。这在我习惯的 C# 中会很容易,但在 PHP 中似乎没有正常的获取/设置功能。我有什么办法可以完成我希望做的事情吗?
问问题
63 次
2 回答
1
您可以创建一个类并为其提供一些静态辅助函数
例如:
class CurrentUser {
protected static $currentUser;
protected static function getCurrentUser(){
if (!static::$currentUser){
// get the current user from db and assign it to the currentUser Property
}
return static::$currentUser;
}
public static function get($property){
return isset(static::getCurrentUser()->$property)?static::$currentUser->$property:null;
}
public static function set($property, $value){
// make sure we have the current user
$user = static::getCurrentUser();
if ($user){
$user->$property = $value;
// save the user to the database.
}
}
}
使用 then 你会说
echo CurrentUser::get("address");
echo CurrentUser::set("address", "123 anystreet, anytown US 12345");
于 2013-07-07T05:22:42.080 回答
0
你可以使用像 Yii 这样的框架,它有像 CActiveRecord 这样的类,这些类映射到数据库中的行。
$u = User::model()->findByPk(1);
$u->username = "fred";
$u.save();
如果您保留对对象的引用,则可以在每次需要时保存记录。
于 2013-07-18T01:56:33.447 回答