基本上我在一个页面上有很多链接,我会使用这样的东西

<?PHP echo $SITE_PATH ?>

在同一页面上多次出现,但会在 PHP 中显示这样做的通知。

我知道你应该使用类似的东西 伊塞特() 但我真的需要每次打电话时都使用它吗?

<?PHP echo $SITE_PATH ?>

- - 编辑 :
如果我改用已定义的变量,那么通知似乎就会消失

有帮助吗?

解决方案

两个解决方案,在这里:

  • 只使用存在的变量——这可能是你应该做的。
  • 或测试它们是否存在 (和 isset) 在尝试使用它们之前。

没有什么魔法^^

如果您的应用程序使用许多未设置的变量,则您的设计可能存在一些问题。


在您提出的情况下,对于多次使用的变量,我会确保它存在,如果不存在,则将其设置为“”,例如在脚本的开头。

这看起来不太好,但它会起作用——这样,您就不必检查整个应用程序,修补所有内容。

(或者我也可能禁用 E_NOTICE error_reporting level——我不喜欢这个想法,但是,有时,这确实是处理某些代码库的唯一方法)

其他提示

可以通过使用剿消息@:

print @$site_path;

或者你可以使用一个三元操作以获取一个默认值:

print (isset($site_path)) ? $site_path : "default_path" ;

在比赛的最后阶段,不应该被使用的未设置变量。如果你是,你需要重新考虑你的方法。处理这种信息的前期,所以你的脚本的其余部分可以不喜欢这个问题上运行。

您真的应该确保变量在使用它(尤其是它呼应的页面)之前设置。如果变量是从一个不安全的源来($ _ GET,$ _ POST,数据库),那么你应该做一些类型的过滤,以防止安全漏洞(跨站点脚本(XSS),跨站请求伪造(CSRF)等。 。),但如果你觉得一切是安全的,你只是不希望显示错误(例如,在生产中)设置你的错误报告0

E.g。 error_reporting(0);

可以(在页面的顶部集error_reporting(0);)在php.ini中水平或每页执行此操作。

在一个侧面说明,在生产,你永远不希望显示错误。登录他们,而不是。在发展你想看到所有的错误(E_STRICT)的。

您可以创建一个函数来检查变量设置并返回它:

function EchoVar() {
    global $SITE_PATH;
    return isset($SITE_PATH) ? $SITE_PATH : '';
}

// calling it
echo EchoVar();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top