【问题标题】:Storing SESSION variables as CONSTANTS将 SESSION 变量存储为 CONSTANTS
【发布时间】:2014-12-02 11:30:14
【问题描述】:

这是一个比其他任何事情都更普遍的查询,但有兴趣听到普遍共识可能是什么。

像往常一样,我将用户会话数据存储在会话用户数组中。显然,我可以在包含 session_start() 的每个页面上直接访问该数组。但是,我希望能够使用简单的变量访问会话项,而不是每次都引用数组。真正归结为对我来说打字更少,但代码更整洁。

我正在考虑在每个页面的顶部包含一个文件,该文件将每个会话变量定义为一个常量,然后我可以引用该常量而不是数组。

如果有多个用户登录,这会起作用还是会导致问题?

谢谢, G

【问题讨论】:

  • 是的,它会起作用,但我认为这不是一个好主意
  • 为什么要这么做?我认为完全没有必要。但无论如何,还有另一种方法,如果你为它创建一个类,然后使用该类来取出会话变量。
  • 有效问题,我很欣赏这有点多余,但我想做的是能够输入类似 而不是 。当我逐步学习使用 PHP 开发的最佳实践时,我更加好奇。
  • 只是一个自发的想法。由于常量只能定义一次,如果会话中的值发生更改(即被覆盖)会发生什么?我只能第二个@lolka_bolka - 写一个类来代表会话。要了解相关信息,请查看一些框架(在其中一些框架中,该类称为 Registry)。
  • 好点,用户也可以更新他们的电子邮件详细信息和其他一些详细信息。是的,我认为这会导致问题。

标签: php arrays constants session-variables


【解决方案1】:

是的,它会工作!但我认为这不是一个好主意/没有必要。

作为一个例子:

index.php:

<?php

    session_start();
    $_SESSION['username'] = "myuser1233";

    require_once("config.php");
    echo USERNAME;

?>

config.php:

<?php

    //session_start(); you would have to start the session if you don't start the session in the file which includes this one
    define("USERNAME", $_SESSION['username']);

?>

输出:

myuser1233

(我会使用会话本身或使用会话值创建一个类,因为如果值发生变化你会怎么做?你不能覆盖常量!)

【讨论】:

  • 谢谢。是的,这是一个愚蠢的问题,因为我已经参与了有关它的讨论。 Certian 用户详细信息不会改变,但将一些作为常量引用和一些使用会话数组没有什么意义。至于课程,虽然我已经使用了现有的课程并且可以理解它们,但我还没有自己动手。这可能是一个很好的练习。继续学习!
猜你喜欢
  • 2013-11-23
  • 1970-01-01
  • 1970-01-01
  • 2010-10-10
  • 1970-01-01
  • 2014-02-16
  • 2021-09-07
  • 1970-01-01
  • 2017-11-13
相关资源
最近更新 更多