【问题标题】:I cannot locate the declaration of a site-wide variable我找不到站点范围变量的声明
【发布时间】:2014-05-14 00:46:55
【问题描述】:

我不是一个经验丰富的 .php 程序员,但知道足以理解代码。一家第 3 方公司为我构建了一个站点,他们在其中使用了一个名为 domain 的变量并在 URL 路径中回显该变量。

<?php echo domain;?>css/style.css

该变量未在带有 $domain 的页面上声明 我在 .php 页面的任何地方都找不到该变量的声明位置。我还应该在哪里寻找这个?

【问题讨论】:

  • 我会尝试 grepping 您的整个项目并浏览每个返回结果的文件。不过,您可能还有一些工作要做,这个名字很笼统,可能会在其他地方广泛使用。
  • 最简单的方法可能是在你的编辑器中使用Find in all files
  • 真的是echo domain 而不是echo $domain
  • 一个配置文件?,搜索define('domain'?搜索域名作为回显?,是从数据库中的变量定义的吗?
  • 如果它真的只是domain(没有$)它是使用define("domain", [...])完成的

标签: php variables declaration


【解决方案1】:

如果这个“变量”在名字前没有$,它就是一个常量。

常量在 PHP 中使用

定义

define("constant_name", "constant_value");

那么你应该在你的文件中找到

define("domain" 或仅用于define(

并找到设置域的行。

【讨论】:

  • 我找到了。它是使用由数据库查询填充的变量设置的。谢谢大家!
【解决方案2】:

1) grepping variable name 通过terminal 或任何其他cli 贯穿您的项目

2) 搜索该文件中的所有includes

3) 搜索所有configextended 文件

【讨论】:

    【解决方案3】:

    你可以试试这样的:

    <?
      ini_set('display_errors', '1');
      define("domain","somethingsomethingblabla");
    ?>
    

    您将其添加到存在echo domain; 的文件之一,但在任何包含之前,位于文件的最顶部。

    因此,当您打开该文件时,它将定义 domain 常量,并且当在包含的文件之一中定义相同的常量时,php 将发出通知:

    PHP Notice: Constant domain already defined in /path/to/file.php on line XX

    瞧,你去吧,有一个定义domain常量的调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-19
      • 2012-06-11
      • 1970-01-01
      • 2020-03-18
      • 2014-09-20
      • 2010-11-23
      • 2012-06-28
      相关资源
      最近更新 更多