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