在每个页面的开头,我包含一个启动会话等的文件,我们称之为session.php
。在这个文件中session.php
,我包含一个包含函数的文件,我们称之为function1.php
,因为我需要该功能可用session.php
.
但是,稍后在主页中我还包括function2.php
需要访问设置的变量session.php
,所以我另外尝试包括session.php
in function2.php
.
问题是,由于 function1 将被声明多次,因此会发生错误......
致命错误:无法重新声明 function1()(之前在...中声明)
那么,对此有什么更优雅、更干净的解决方案呢?你怎么解决的?
基本上,我需要访问之前已包含在主页中的函数内的变量......
这不是公共变量和私有变量的问题,因为您想要从 session.php 获取的变量不是对象的一部分。它们只是您(可能)在全局范围内声明的变量,现在需要在 function2.php 中访问。
第一:function2.php...的内容是一个函数吗?如果不是,那么该文件应该与脚本中包含该文件的位置具有相同的范围,并且应该能够很好地访问它们。
如果您需要访问 session.php 变量的位置是函数或对象,那么您有几种选择。
0.重新包含文件
这就是你现在正在尝试做的事情。它会失败,因为 session.php 还包含函数定义,并且函数一旦创建就无法重新定义。作为解决方法,您可以将变量定义移动到单独的文件中,然后将其包含在 function2 中。这很笨拙,但很简单。
1. 调用函数时将变量传递给函数。
- 优点:简单、灵活。
- 缺点:调用函数有点痛苦。您可以通过将它们全部放入单个参数数组中来简化此过程,而不是单独传递每个参数。
2. Use global
在function2的开头添加命令即可global $var1, $var2 ...
导入脚本中其他地方使用的任何变量。
这也非常简单,但许多程序员认为使用全局变量是草率的,并且会在其他地方遇到难以调试的错误。
3.使用常量
在 session.php 中,将要共享的变量定义为常量。例如。,define("PASSWORD", "coolpassword123")
。常量可以从函数内部或对象等内部引用,并且在声明后就永远不能更改。例如。,echo(PASSWORD)
(没有引号,没有 $)。
常量通常是此类问题的最佳解决方案,只要 1) 您不需要更改其值,2) 您可以坚持使用简单的数字或字符串值。常量不能是数组、对象等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)