基本上我在页面上有很多链接,我会使用类似的东西
<?PHP echo $SITE_PATH ?>
在同一页面上多次,但它会在PHP中显示一条通知。
我知道你应该使用 isset()之类的东西,但每次打电话时我真的需要使用吗?
<?PHP echo $SITE_PATH ?>
---编辑:
如果我切换到使用已定义的变量,那么通知似乎就会消失
答案 0 :(得分:9)
这里有两个解决方案:
isset
)。没有魔法^^
如果您的应用程序使用了许多未设置的变量,那么您的设计可能会遇到一些问题。
在你提出的一个案例中,对于一个多次使用的变量,我会确保它存在,如果没有,则将其设置为'',例如,在我的脚本开头。
这看起来并不是很好,但它会起作用 - 这样,你就不必完成整个应用程序,修补所有内容。
(或者我也可以禁用E_NOTICE
error_reporting
级别 - 我不喜欢这个想法,但是,有时候,它确实是处理某些代码库的唯一方法)
答案 1 :(得分:3)
您可以使用@:
来抑制邮件print @$site_path;
或者您可以使用三元操作来获取默认值:
print (isset($site_path)) ? $site_path : "default_path" ;
最后,您不应该使用未设置的变量。如果你是,你需要重新思考你的方法。事先处理这些信息,因此其余的脚本可以毫无问题地运行。
答案 2 :(得分:1)
您确实应该确保在使用变量之前设置变量(特别是将其回显到页面)。如果变量来自不安全的源($ _GET,$ _POST,数据库),那么您应该进行某种类型的过滤以防止安全漏洞(跨站点脚本(XSS),跨站点请求伪造(CSRF)等)。 。)但是如果您觉得一切都安全并且您只是不想显示错误(例如在生产中),请将错误报告设置为0。
E.g。 error_reporting(0);
您可以在php.ini级别或每页(在页面顶部设置error_reporting(0);
)执行此操作。
另外,在制作中,您不希望显示错误。记录它们。在开发中,您希望看到所有错误(E_STRICT)。
答案 3 :(得分:0)
您可以创建一个函数来检查变量是否已设置并返回它:
function EchoVar() {
global $SITE_PATH;
return isset($SITE_PATH) ? $SITE_PATH : '';
}
// calling it
echo EchoVar();