如何在所有php文件中识别定义的全局变量(Case inside)?

时间:2010-09-07 14:09:23

标签: php

如何在所有php文件中识别定义的全局变量($ begin)? (请不要更改案例代码只添加,因为我正在处理我只能添加代码的大项目)

案例:(问题$开始无法在文件末尾识别)

<?php $begin=time()?>
  <div>new name</div>
<?php   echo time()-$begin; ?>

编辑: 我在文件中有愚蠢的错误,现在代码有效,谢谢

由于

3 个答案:

答案 0 :(得分:2)

设置与您使用的脚本一起存储的配置文件可能是个好主意,然后将该文件包含在每个脚本的顶部。例如,这可能是与您正在使用的脚本位于同一目录级别的名为config.php的文件的内容:

<?php

$begin = time();

?>

然后,您可以将以下行添加到需要访问变量的每个PHP文件的顶部:

<?php include 'config.php'; ?>

如果您想确保在脚本中没有错误地使用该变量,则可以使用define功能。它以非常类似的方式工作,但它更永久。您可以将其放在配置文件中:

<?php

define('BEGIN', time());

?>

然后任何包含上述包含的脚本都可以包含以下代码:

<?php echo time() - BEGIN; ?>

答案 1 :(得分:1)

你使用constants,因为它们具有全局范围。

<?php define('TS_START',time())?>
  <div>new name</div>
<?php   echo time()-TS_START; ?>

或者如果因为你的“大型”项目而无法做到这一点。也许你想要把它加倍。

<?php $begin = $_begin = $__begin = time()?>
  <div>new name</div>
<?php   echo time()- ($begin ? $begin : ($_begin ? $_begin : $__begin)); ?>
但编程很差,对于一个小实体不需要那么多变量,我会用define重写并用$begin覆盖TS_START的所有实例

答案 2 :(得分:1)

根据你给出的例子,没有理由为什么$ begin在程序结束时仍然无效。

  • 您是否检查过您的程序中没有使用名称$ begin?

  • 同样,您可能会包含一些使用$ begin的第三方代码?无论哪种方式,请考虑将您正在使用的变量名称更改为更独特的名称。

  • 在该示例中,您的所有代码都在全局范围内。但是如果你的真实代码使用这些函数,那么$ begin将在函数级范围内,因此不会是全局的。 在这种情况下,最快的选择是添加全局$ begin;在这两个职能的顶部。