我怎样才能比较两个可变字符串,会不会像这样:
$myVar = "hello";
if ($myVar == "hello") {
//do code
}
并检查 $_GET[] 变量是否存在于 url 中是否是这样的“
$myVars = $_GET['param'];
if ($myVars == NULL) {
//do code
}
原文由 Harigntka 发布,翻译遵循 CC BY-SA 4.0 许可协议
为了比较字符串,我建议使用三重等于运算符而不是双重等于。
// This evaluates to true (this can be a surprise if you really want 0)
if ("0" == false) {
// do stuff
}
// While this evaluates to false
if ("0" === false) {
// do stuff
}
为了检查 $_GET 变量,我宁愿使用 array_key_exists,如果键存在但内容为空,isset 可以返回 false
就像是:
$_GET['param'] = null;
// This evaluates to false
if (isset($_GET['param'])) {
// do stuff
}
// While this evaluates to true
if (array_key_exits('param', $_GET)) {
// do stuff
}
尽可能避免做以下作业:
$myVar = $_GET['param'];
\(_GET,取决于用户。因此预期的密钥可能可用或不可用。如果访问时密钥不可用,将触发运行时通知。如果启用通知,这可能会填满您的错误日志,或者在最坏的情况下向您的用户发送垃圾邮件。只需做一个简单的 array_key_exists 来检查 \)_GET,然后再引用它上面的键。
if (array_key_exists('subject', $_GET) === true) {
$subject = $_GET['subject'];
} else {
// now you can report that the variable was not found
echo 'Please select a subject!';
// or simply set a default for it
$subject = 'unknown';
}
资料来源:
http://ca.php.net/array_key_exists
http://php.net/manual/en/language.types.array.php
原文由 Katsuke 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答3.1k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
3 回答1.2k 阅读
2 回答1.2k 阅读
供您参考,在第一次启动 PHP 时让我困扰了好几天的事情: