Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP GET问题:如何仅在变量值为';它不在查询字符串中?_Php_Get_Query String_Setvalue - Fatal编程技术网

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.=:)