【问题标题】:$_SESSION['user']->getURL()$_SESSION['user']->getURL()
【发布时间】:2010-03-31 03:38:44
【问题描述】:
$_SESSION['user']->getURL()

是调用对象$_SESSION['user']的getURL()方法吗?

【问题讨论】:

  • 更具体。一般来说 - 这是可能的。调用它有什么问题吗?

标签: php session object


【解决方案1】:

是不是调用getURL()的方法 对象 $_SESSION['user']?

是的,你就是这样做的。

【讨论】:

    【解决方案2】:

    你不能真正在会话中存储对象

    我的立场是正确的:

    您可以在会话中存储对象...只要在调用 session_start() 时加载(或可以自动)类。

    或者您需要对它们进行序列化和反序列化才能在会话中使用它们。

    如果该类需要数据库连接,您可能还需要一个 __wakeup 函数。

    http://php.net/manual/en/function.serialize.php

    http://php.net/manual/en/function.unserialize.php

    [编辑]

    您可能不应该将用户对象存储在会话中,可能只是一个标识符,以便您可以在页面加载时重新实例化用户对象(这样密码就不会存储在 $_SESSION 中,如果它在用户对象)

    【讨论】:

    • “你不能真正在会话中存储对象”这是错误的,因为会话机制已经在后台执行了这个例程。
    • 可以在会话中存储对象...只要在调用 session_start() 时类已加载(或可以自动)。
    • 是的,你可以我猜,但在这种情况下(可能是大多数情况下)他真的不应该这样做。跨度>
    • 如果您对它们进行序列化和反序列化,则无需担心先加载类。
    • +1 表示不在会话中存储对象。是的,有可能。推荐吗?很少。通过查看用户发布的 sn-p,我会说这绝对不是您最好将对象存储在会话中的情况。
    【解决方案3】:

    它检索存储在$_SESSION['user'] 中的对象并调用它的getURL 方法,不带任何参数。

    【讨论】:

      猜你喜欢
      • 2011-09-12
      • 2016-04-28
      • 1970-01-01
      • 2016-03-17
      • 1970-01-01
      • 1970-01-01
      • 2017-02-25
      • 2015-10-08
      • 1970-01-01
      相关资源
      最近更新 更多