【问题标题】:PHP $_SESSION variable in CONSTANT [duplicate]CONSTANT中的PHP $_SESSION变量[重复]
【发布时间】:2017-10-30 11:48:22
【问题描述】:

我正在尝试将会话变量定义为常量...

define("MY_VAR", $_SESSION['variable_name']);

我在访问这个常量之前启动会话

但是,当我尝试更改变量的值时...

MY_VAR = "xyz"

...我收到以下消息

"Parse error: syntax error, unexpected '=' in"

我不确定这里发生了什么。如果有人能对此有所了解,那就太好了。

注意:相反,如果我在使用MY_VAR 的所有地方都使用$_SESSION['variable_name'],则代码可以正常工作

【问题讨论】:

  • 你不能赋值给常量。常量是,嗯,常量。如果它们是可变的,它们就是变量。我>
  • 看起来您正在尝试使用常量作为对另一个变量的引用 - 这根本不是它们的用途。
  • 谢谢 iainn !这就是我一直在寻找的答复/答案...您有什么建议用作“参考”...我能想到的只是创建一个变量来存储新值并更新会话变量最后......但我正在寻找一种“参考”方法,这样我就不必在每个页面中提及会话变量。
  • 您可以在 PHP 中使用 =& - have a read through the docs here 分配一个引用变量。常量与此完全分开。
  • @iainn:非常感谢!我会通过它。

标签: php session constants


【解决方案1】:

常量的意义在于它们是常量

一旦设置就无法更改。

【讨论】:

  • 感谢您的回复。
  • 如果我错了,请纠正我,但我的理解是 constant 的值是 SESSION 变量的名称;变量的值可以通过引用常量来改变。例如...假设, $_SESSION['variable_name'] = "abc"* 我创建一个常量 *define("MY_CONSTANT", $_SESSION['variable_name']);* 然后我更改 * MY_CONSTANT="xyz";* 那不是 *$_SESSION['variable_name'] = "xyz"
  • @DesV 常量无法更改。 As the name suggests, that value cannot change during the execution of the script -php.net/manual/en/language.constants.php
  • 谢谢!所以我知道我以错误的方式使用它。但是“iainn”(上图)了解我想要做什么并寻找......
猜你喜欢
  • 1970-01-01
  • 2013-11-16
  • 1970-01-01
  • 2017-07-25
  • 2014-03-31
  • 2015-05-10
  • 1970-01-01
  • 1970-01-01
  • 2020-09-04
相关资源
最近更新 更多