PHP GET问题:如何仅在变量值为';它不在查询字符串中?
如果参数存在,我知道如何从查询字符串中获取值:PHP GET问题:如何仅在变量值为';它不在查询字符串中?,php,get,query-string,setvalue,Php,Get,Query String,Setvalue,如果参数存在,我知道如何从查询字符串中获取值: $hop = $_GET['hop']; 但是如果它不在查询字符串中,我还需要设置一个默认值。我试过这个,但没用: $hop = $_GET['hop']; if ($hop = " ") { $hop = 'hardvalue'; }; 请帮助我处理查询字符串包含和不包含“hop”参数的情况,如果存在但未定义: example.com/?hop=xyz & & PS我不知道我在做什么,所以如果你向我解释,请也包括我要添加到我的PHP页
$hop = $_GET['hop'];
但是如果它不在查询字符串中,我还需要设置一个默认值。我试过这个,但没用:
$hop = $_GET['hop'];
if ($hop = " ") {
$hop = 'hardvalue';
};
请帮助我处理查询字符串包含和不包含“hop”参数的情况,如果存在但未定义:
example.com/?hop=xyz
&
&
PS我不知道我在做什么,所以如果你向我解释,请也包括我要添加到我的PHP页面的确切代码 使用
使用
再仔细考虑一下,决定它应该更健壮一些:
$hop = 'hardvalue';
if (array_key_exists('hop', $_GET)) {
if (!empty($_GET['hop'])) { $hop = $_GET['hop']; }
}
再仔细考虑一下,决定它应该更健壮一些:
$hop = 'hardvalue';
if (array_key_exists('hop', $_GET)) {
if (!empty($_GET['hop'])) { $hop = $_GET['hop']; }
}
事实上,我会用
$hop = !empty($_GET['hop']) ? $_GET['hop'] : 'default';
使用empty()
而不是isset()
可以解决第三种情况,即参数存在但未定义
此外,在if($hop=”“)
中,需要将=
更改为=
<代码>=分配,=
测试相等性。按照您的方式,if语句将始终运行,无论$hop等于什么。实际上,我会使用
$hop = !empty($_GET['hop']) ? $_GET['hop'] : 'default';
使用empty()
而不是isset()
可以解决第三种情况,即参数存在但未定义
此外,在
if($hop=”“)
中,需要将=
更改为=
<代码>=分配,=
测试相等性。按照您的方式,if语句将始终运行,无论$hop等于什么。您已经得到了精细的解决方案。在使用URL或表单参数时,通常也希望将空字符串或零视为不存在的值。然后,您可以使用以下替代语法:
$hop = $_GET["hop"] or $hop = "hardvalue";
它之所以能够工作,是因为=
的优先级高于或
,并且更容易用额外的空格阅读
从PHP 5.3开始,还可以使用:
$hop = $_GET["hop"] ?: "hardvalue";
这里的优点是,这种语法不会发出对调试非常有用的php通知。您已经得到了精细的解决方案。在使用URL或表单参数时,通常也希望将空字符串或零视为不存在的值。然后,您可以使用以下替代语法:
$hop = $_GET["hop"] or $hop = "hardvalue";
它之所以能够工作,是因为=
的优先级高于或
,并且更容易用额外的空格阅读
从PHP 5.3开始,还可以使用:
$hop = $_GET["hop"] ?: "hardvalue";
这里的优点是,这种语法不会发出对调试有用的php通知。Sweet,我最喜欢它,因为它简单而优雅。Sweet,我最喜欢它,因为它简单而优雅。谢谢你澄清=vs.==:)感谢您澄清=vs.=:)