ISSET(); 适合于检测是否存在这个参数
定义和作用范围: 用于测试一个变量是否具有值 (包括 0,FALSE, 或者一个空字串, 但不能是 NULL), 即: http://localhost/?fo = 也是可以通过检测, 因此不适用但如果是 http://localhost / 参数中并不含 fo 参数, 就可以用 isset 来检测, 此时 isset($_GET['fo']) 返回 false
不适用于: 该函数不适合于验证 html 表单中的文本的有效方式要检查用户输入文本是否有效, 可以用 empty();
empty(); 最好用的一个函数
定义和作用范围: 用于检查变量是否具有空值: 包括: 空字串, 0,null 或 false, 即: http://localhost/?fo = 或 http://localhost/?fo=0 时, empty 检测出来的结果都是 ture, 不适用范围: 不适用于检测可为 0 的参数
is_numeric(); 只适用于检测数字, 但假如参数名不存在, 会出错, 因此不适合于第一层检测
综合示例:
代码如下:
- ini_set("display_errors",1);
- //ini_set("error_reporting",E_ALL); print_r
- error_reporting(E_ALL);
- $a=NULL;
- if(isset($a))echo '变量 $a 的 isset 为真';
- echo 'isset 的情形:';
- if(isset($_GET['fo'])){
- echo '变量 \'fo\'的 isset 为真, 变量可用';
- }else{
- echo '变量 \'fo\'的 isset 为假, 无变量设置';
- }
- echo 'empty 的情形:';
- if(empty($_GET['fo'])){
- echo '变量 \'fo\'的 empty 为真, 即空值或无效值';
- }else{
- echo '变量 \'fo\'的 empty 为假, 有值';
- }
- echo 'is_numeric 的情形:';
- if(is_numeric($_GET['fo'])){ // 在参数中无 fo 参数时, 则出错
- echo '变量 \'fo\'的 is_numeric 为真, 是数字';
- }else{
- echo '变量 \'fo\'的 is_numeric 为假, 不是数字';
- }
echo "\$_GET['fo']=''的情形:
- ";
- if($_GET['fo']==''){ // 在参数中无 fo 参数时, 则出错
- echo 'fo 无值, 空的字符串';
- }elseif($_GET['fo']!=''){
- echo 'fo 有值, 不为 \'\'.';
- }
- echo "\$_GET['sex']='m'的情形:";
- if($_GET['sex']=='m'){ // 当参数中无 sex 变量时就会出错
- echo '男的';
- }elseif($_GET['sex']=='f'){
- echo '女的';
- }
- ?>
代码如下:
传有效值 传空值 传 0 值
性别: 男 性别: 女
清空
来源: https://www.php1.cn/detail/php-98ebba2cb4.html