3

这是我有点挑剔,但我真的很喜欢它的易用性$_SESSION。所以我想知道是否有办法让我在数据库中的行像这样工作。对我来说创建一个超全局很容易,例如$_DATA['address']返回保存在当前登录用户的数据库中的地址。明显的问题是,当我向它写入内容时,$_DATA['whatever']它会自动写入数据库。这在我习惯的 C# 中会很容易,但在 PHP 中似乎没有正常的获取/设置功能。我有什么办法可以完成我希望做的事情吗?

4

2 回答 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();

如果您保留对对象的引用,则可以在每次需要时保存记录。

http://www.yiiframework.com/doc/api/1.1/CActiveRecord

于 2013-07-18T01:56:33.447 回答