我将如何添加isset()并在我的代码下面保留empty()?除了empty()之外,我怎样才能使用PHP的isset()?
$pagesize = (!empty($_GET['pagesize'])) ? $_GET['pagesize'] : 20;
UPDATE:
我只是想确保PHP不产生任何通知或警告
我将如何添加isset()并在我的代码下面保留empty()?除了empty()之外,我怎样才能使用PHP的isset()?
$pagesize = (!empty($_GET['pagesize'])) ? $_GET['pagesize'] : 20;
UPDATE:
我只是想确保PHP不产生任何通知或警告
这是什么意思?
$pagesize = (isset($_GET['pagesize']) && !empty($_GET['pagesize'])) ?
$_GET['pagesize'] :
20;
http://us.php.net/manual/en/language.operators.logical.php
编辑:
是完整的,如果事情被设置empty已经检查,这样你就不需要使用isset()函数也是如此。
我也谨慎使用这个代码,如果它直接进入查询或类似的东西。考虑使用intval,is_numeric和类似的功能。
这是相当多余的,因为'empty'检查是否设置了一个值 – nickf 2009-08-14 02:32:57
我知道,但我用给定的信息回答了问题。无论如何,这样的事情是危险的,因为它可能被设置而不是空的,但仍包含恶意代码或意外数据。我会更新我的答案以包含此内容。 – 2009-08-14 02:35:08
@nickf这不是事实。有时候可以并且应该一起使用isset和empty。确实如果没有设置变量,则空值返回true,但不是每个变量isset都是空的。使用isset和!empty是确定变量是否被设置并包含可用值的好方法。 – Nilpo 2012-02-29 04:14:36
我不确定你到底在这里。 isset
将检查是否已经设置了一个值,如果有,则返回true。 empty
将检查值是否已经设置了或者是否等于假(例如:0, "", null
),如果是,则返回true。
我看不出为什么你需要将两者结合起来。要重写你的榜样没有empty
,你可以这样做:
$pagesize = isset($_GET['pagesize']) && $_GET['pagesize']
? $_GET['pagesize']
: 20;
看到这个问题的答案约isset和空更多的解释:http://stackoverflow.com/questions/1219542/in-where-shall -i-use-isset-and-empty – nickf 2009-08-14 02:34:08
您不必添加'isset'。如果变量没有被设置,'empty'将评估为真。 – jason 2009-08-14 02:35:49
但是不会清空仍然允许php的通知显示,如果变量没有设置或不是? – JasonDavis 2009-08-14 02:41:53