我有两个变量定义,我试图理解两者之间的区别,所以我可以将它们合并为一个。
PHP定义1:
$page = $_GET['page'];
PHP定义2:
$page = 0;
if(isset($_GET['page'])){
$page = (int) $_GET['page'];
}
答案 0 :(得分:5)
您的第二个定义将禁止在未尝试将$_GET['page']
分配给任何内容时未遇到(int)
时遇到的任何错误。
第二个定义中的$_GET['page']
部分会将$page = 0
转换为整数值。这会抑制你可能获得的任何攻击,尽管你仍然要小心。
最后,$page
只为$_GET
设置默认值。如果$page
中没有值,则0
将保留$page
的值。如果您在代码段下方的代码中使用merge them into one
,这也可确保始终设置{{1}}。
我不知道{{1}}的意思;第二个片段是第一个片段的扩展(和改进)。
答案 1 :(得分:1)
第一个代码块会将$page
中的任何值分配给$_GET['page']
。
第二个将默认值0
分配给$page
。并且if
语句将首先检查是否设置了$_GET['page']
(以避免警告)。如果确实设置了它,它会将$_GET['page']
的值转换为整数并将其分配给$page
。
答案 2 :(得分:0)
我个人使用:
$page = isset($_GET['page']) ? (int) $_GET['page'] : 0;
或array_key_exists。