如何解决如何在 if else 语句中使用 php 循环
if (isset($_GET['language']) && !empty($_GET['language'] && $_SESSION['language'] !== $_GET['language'])) {
if ($_GET['language'] === 'en') {
$_SESSION['language'] = 'en';
} elseif ($_GET['language'] === 'ar') {
$_SESSION['language'] = 'ar';
} elseif ($_GET['language'] === 'de') {
$_SESSION['language'] = 'de';
} else {
$_SESSION['language'] = $default_language;
}
}
我只想循环 elseif 语句。有没有办法做到这一点?
解决方法
您无需执行 isset
和 empty
,因为 empty
会为您执行此操作。
这还会检查语言是否属于特定语言之一(使用 in_array
),如果不是,则使用默认语言...
if (!empty($_GET['language']) && $_SESSION['language'] !== $_GET['language']) {
$_SESSION['language'] = in_array($_GET['language'],['en','ar','de'])
? $_GET['language'] : $default_language;
}
,
这里不需要循环。如果您打算将可用语言列入白名单,则将列表放入数组中并使用 in_array()
:
$languages = ['ar','de','en'];
if (isset($_GET['language']) && in_array($_GET['language'],$languages)) {
$_SESSION['language'] = $_GET['language'];
} else {
$_SESSION['language'] = $default_language;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。