如果参数存在,我知道如何从查询字符串中获取值:
$hop = $_GET['hop'];但是如果它不在查询字符串中,我还需要设置一个默认值。我试过了,但不起作用:
$hop = $_GET['hop'];
if ($hop = " ") {
$hop = 'hardvalue';
};请帮助我处理查询字符串有和没有"hop“参数的情况,以及如果有但没有定义的情况:
example.com/?hop=xyz&
example.com/&
example.com/?hop=附言我不知道我在做什么,所以如果你解释给我,请包括准确的代码为我添加到我的PHP页面。
发布于 2011-04-02 04:26:32
您已经得到了繁琐的解决方案。在使用URL或表单参数时,您通常也希望将空字符串或零视为缺失值。然后,您可以使用以下替代语法:
$hop = $_GET["hop"] or $hop = "hardvalue";它之所以能工作,是因为=比or具有更高的优先级,而且使用额外的空格更容易阅读。
从PHP 5.3开始,还可以使用:
$hop = $_GET["hop"] ?: "hardvalue";这里的优点是,这种语法不会引起php通知,这对调试很有用。
发布于 2011-04-02 03:42:58
使用array_key_exists
if (array_key_exists('hop', $_GET))
{
// the key hop was passed on the query string.
// NOTE it still can be empty if it was passed as ?hop=&nextParam=1
}
else
{
//the key hop was not passed on the query string.
}发布于 2011-04-02 03:43:08
仔细考虑了一下,决定它应该更健壮一些:
$hop = 'hardvalue';
if (array_key_exists('hop', $_GET)) {
if (!empty($_GET['hop'])) { $hop = $_GET['hop']; }
}https://stackoverflow.com/questions/5518057
复制相似问题