Parse error: syntax error, unexpected ')', expecting :: (T_PAAMAYIM_NEKUDOTAYIM)
我有以下代码
1 2 3 4 5 6 7 8
| define("SCRIPT_URL","");
function ifScriptFolder () {
if(isset(SCRIPT_URL ) && !empty(SCRIPT_URL )) {
echo"/".SCRIPT_URL ."/";
} else {
echo"/";
}
} |
但它给了我以下错误:
1
| Parse error: syntax error, unexpected ')', expecting :: (T_PAAMAYIM_NEKUDOTAYIM) in *(path)* on line 3 |
有人能看到这里出了什么问题吗?或者怎么解决?
- 我发布了一个答案来说明如何判断一个常数是空的。请看一下。
如果你试图确定,如果存在常数,然后尝试使用defined()或constant()isset(),困境。
从可以:
功能:defined()
Returns TRUE if the named constant given by name has been defined, FALSE otherwise.
功能:constant()
Returns the value of the constant, or NULL if the constant is not defined.
固定功能:
1 2 3
| function ifScriptFolder () {
echo defined('SCRIPT_URL') ? "/" . constant('SCRIPT_URL') ."/" :"/"
} |
更新:
这是一个更好的解决方案defined()功能本,因为它不需要什么或E_WARNINGIF常数定义。
- 同意使用这些功能。但是,问题是关于解析或编译错误,即脚本甚至都不运行,那么这些函数如何有帮助呢?
- @这个问题是关于经常使用isset()的误用和误解。结果-分析错误。
PHP常量是不可变的,所以你不要使用isset或empty检查他们。
相反,你可以使用defined:
返回a的一场被定义为布尔值,如果这样做,如果它是一个标准的比较,如果它是truthy值检查。
这一价值(未来的参考isset)这不是一个正则函数;它是一个"语言使用和构建"什么不能做在变量(即不能使用返回值是一个函数)。一个PHP empty升到5.5。
- 谢谢你成功了!以前不必检查定义的常量。:)当它让我接受的时候。
如果你想看到,如果一个变量的值,使用isset()只适用于一个常数,与defined()。
如果你想检查是否是空的(恒定的困境,你可以使用:
你可以转换一个布尔:《不朽的
所以,你可以改变你的代码:
1 2 3 4 5 6 7 8 9
| <?php
define("SCRIPT_URL","");
function ifScriptFolder () {
if(defined('SCRIPT_URL') && !((boolean )SCRIPT_URL )) {
echo"/".SCRIPT_URL ."/";
} else {
echo"/";
}
} |
- defined()需要字符串参数:defined('SCRIPT_URL')而不是defined(SCRIPT_URL)。
- 对不起,你说得对。我把答案翻了个底朝天。