除了empty()之外,我如何使用PHP的isset()?

Jas*_*vis 4 php isset

我如何添加isset()并在我的代码下面保留empty()?

$pagesize = (!empty($_GET['pagesize'])) ? $_GET['pagesize'] : 20;
Run Code Online (Sandbox Code Playgroud)

更新:

我只是想确保php不会产生任何通知或警告

Nic*_*sta 11

你是这个意思吗?

$pagesize = (isset($_GET['pagesize']) && !empty($_GET['pagesize'])) ? 
                $_GET['pagesize'] :
                20;
Run Code Online (Sandbox Code Playgroud)

http://us.php.net/manual/en/language.operators.logical.php

编辑:
要完成,已检查是否设置了某些内容,因此您也不需要使用isset().
如果它直接进入查询或类似的东西,我也会警告不要使用此代码.考虑使用intval,is_numeric和类似的函数.

  • 这是非常多余的,因为`empty`检查是否设置了值 (14认同)
  • @Nilpo我觉得你倒退了.`!empty($ var)和isset($ var)`是多余的,因为`$ var`没有可能的值(或缺少)会导致`!empty($ var)`返回`true`同时导致`isset($ var)`返回`false`(如果`!empty($ var)`是`false`,那么条件短路,和` isset($ var)`未被评估).这两个不会多余的唯一方法是,如果你想检查`empty($ var)和isset($ var)`,这是否与(但是IMnsHO更令人困惑)`empty($ var)和!is_null($ VAR)`. (4认同)
  • @nickf那不是真的.有时候isset和empty可以并且应该一起使用.如果没有设置变量,则返回true,但是并非每个变量都是空的.使用isset和!empty是确定变量设置并包含可用值的好方法. (2认同)