我的PHP代码就是这样。
if(isset($_GET['id'])) {
$id = $_GET['id'];
}
if(isset($_GET['subid'])) {
$subid = $_GET['subid'];
}
如果isset
我想变量,如果0
则设置为!isset
。类似的东西
if(isset($_GET['id'])) {
$id = $_GET['id'];
} else $id='0';
但是你看到我有多个if。我该怎么做?我需要为每个if写一个else吗?
更新 好。谢谢你的帮助。我做的。但有没有办法再缩短这段代码呢?
$id = isset($_GET['id']) ? $_GET['id'] : 0;
$page = isset($_GET['page']) ? $_GET['page'] : 0;
$subid = isset($_GET['subid']) ? $_GET['subid'] : 0;
$feat = isset($_GET['feat']) ? $_GET['feat'] : 0;
答案 0 :(得分:4)
$id = isset($_GET['id']) ? $_GET['id'] : 0;
答案 1 :(得分:3)
$id = $subid=0;
if(isset($_GET['id']))
{
$id = $_GET['id'];
}
if(isset($_GET['subid']))
{
$subid = $_GET['subid'];
}
在运行该代码之前,您可以在0处启动所有变量
答案 2 :(得分:2)
使用辅助函数:
function getQSValueOrDefault($name, $default){
if (!isset($_GET[$name]))
return $default;
else
return $_GET[$name];
}
并使用它:
$id = getQSValueOrDefault('id', 0);
$subid = getQSValueOrDefault('subid', 0);
答案 3 :(得分:1)
获取输入变量的最短方法如下:
$id = filter_input(INPUT_GET, 'id');
(您无需检查是否设置了值)
其他方法:
// set default values if they are not set
// so that you don't have to check if they are set
$inputs = $_GET + array(
'id' => 0,
'subid' => 0,
);
$id = $inputs['id'];
$subid = $inputs['subid'];
或使用三元运算符:
$id = isset($_GET['id']) ? $_GET['id'] : 0;
$subid = isset($_GET['subid']) ? $_GET['subid'] : 0;
答案 4 :(得分:1)
$id = isset($_GET['id']) ? $_GET['id'] : "0";
$subid = isset($_GET['subid']) ? $_GET['subid'] : "0";
答案 5 :(得分:1)
foreach ($_GET as $key=>$value){
if ($key === 'id' || $key === 'subid'){
if(isset($value)) {
$$key = $value;
}else{
$$key = '0';
}
}
}
答案 6 :(得分:1)
如果你不想要几行:
$id = isset($_GET['id']) ? $_GET['id'] : 0;
$page = isset($_GET['page']) ? $_GET['page'] : 0;
$subid = isset($_GET['subid']) ? $_GET['subid'] : 0;
$feat = isset($_GET['feat']) ? $_GET['feat'] : 0;
然后这可能是另一种选择。
$keys = array('id', 'page', 'subid', 'feat');
foreach($keys as $key)
{
$$key = isset($_GET[$key]) ? $_GET[$key] : 0;
}
请注意,您放弃了为键设置不同默认值的选项,或者以不同方式处理不同的键。
答案 7 :(得分:0)
默认情况下,您可以将$id
和$subid
声明为0。然后写一个简单的if ( ... ) { }
。像这样:
$id = 0;
$subid = 0;
if (isset($_GET['id']))
$id = $_GET['id'];
if (isset($_GET['subid']))
$subid = $_GET['subid'];
答案 8 :(得分:0)
如何使用extract() ??
extract($_GET); // it will create all the vairables
// to set default values
$id = isset($id) ? $id : 0;
$subid = isset($subid) ? $subid : 0;
<强>编辑:强> 更优雅的方式
$id = $subid = 0; // set default values
extract($_GET); // it will create all the variables and overwrite default values
答案 9 :(得分:0)
您可以使用?:运算符删除额外的keyworks,使其成为每个
的单行$id= isset($_GET['id']) ? $_GET['id'] : 0;
$subid=isset($_GET['subid']) ? $_GET['subid'] : 0;
您还可以创建一个功能来为您完成工作。
function getOrDefault($name, $default) {
return isset($_GET[$name]) ? $_GET[$name] : $default);
}
这将允许您使用各种类型的默认值创建额外的包装函数。
function getInt($name) {
return getOrDefault($name,0);
}
function getString($name) {
return getOrDefault($name,"");
}
然后您的代码变为
$id = getInt('id');
$subid = get('subid');