博客列表 >is_null ()、empty ()、isset () 的用法和变量作用域—4月12日

is_null ()、empty ()、isset () 的用法和变量作用域—4月12日

→忆指凡尘&的博客
→忆指凡尘&的博客原创
2018年04月16日 13:34:56630浏览

大家好

       以下是我对is_null ()、empty ()、isset () 的功能和用法的练习,如有错误望大家指出

实例

<?php
//设置三个变量,一个不赋值,一个为null,一个正常值
$val1;
$val2 = null;
$val3 = 'aaa';
//彻底销毁变量
unset($val3);
//查看变量返回值,上面三种情况皆为true
@var_dump(is_null($val1));
var_dump(is_null($val2));
@var_dump(is_null($val3));

echo '<hr color="red">';
//用empty判断变量值是否为空
$ral1 = '';
$ral2 = 0;
$ral3 = '0';
$ral4 = null;
$ral5 = [];
$ral6 = false;
$ral7 = 'bbb';
//空字符串,返回值为true
var_dump(empty($ral1));
//数字0,返回值为true
var_dump(empty($ral2));
//字符串0,返回值为true
var_dump(empty($ral3));
//null值,返回值为true
var_dump(empty($ral4));
//空数组,返回值为true
var_dump(empty($ral5));
//布尔值false,返回值为true
var_dump(empty($ral6));
//正常字符串,返回值为false
var_dump(empty($ral7));
echo '<hr color="red">';

$bal;
$bal1 = '正常';
$bal2 = null;
//未声明的变量,返回值为false,不报错
var_dump(isset($cal));
//已声明的变量,但是未赋值,返回值为false
var_dump(isset($bal));
//正常字符串,返回值为true
var_dump(isset($bal1));
//null值,返回值为false
var_dump(isset($bal2));

echo '<hr color="blue">';
var_dump(isset($));  //有无判断
var_dump(empty($));  //非空判断
var_dump(is_null($)); //null

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

<?php
echo '<h3>变量作用域</h3>';
echo '<hr color="green">';
//此时$name为全局变量
$name = '小明';
//当我们创建一个全局变量的时候,php会自动生成一个超全局变量
// $GLOBALS['name'];
function aaa(){
	//$nation为局部变量
	//在局部作用域中是无法直接引用全局变量的,可以利用global来引用
	// global $name;
	$nation = '英国';
	//可以直接引用超全局变量
	return $GLOBALS['name'].'去'.$nation;
}
echo aaa();
echo '<hr color="red">';
//静态变量
function bbb(){
	//static将变量只赋值一次
	static $num = 1;
	return '第'.$num.'次输出'.$num++;
}
//第一次输出1
echo bbb();
//第二次输出2
echo bbb();
//第三次输出3
echo bbb();
//第四次输出4
echo bbb();
//第五次输出5
echo bbb();

运行实例 »

点击 "运行实例" 按钮查看在线实例

以下是为了加深印象的手抄版本

微信图片_20180416131040.jpg微信图片_20180416131046.jpg微信图片_20180416131049.jpg微信图片_20180416131054.jpg微信图片_20180416131058.jpg微信图片_20180416131103.jpg

                                                                                        课程总结

1. is_null()什么时候返回true?

(1).变量已声明但未初始化,默认为null值

(2)变量显示赋值为null

(3)unset()销毁后,变量为null值

 总结:变量不存在/没赋值/值为null,则返回true

2. empty()什么时候返回true?

(1)空字符串,空数组

(2)null

(3)0 / '0' / false

3. isset()是null的取反操作

    总结:变量已经存在,并且它的值不为null,返回true,否则为false

4.基本使用原则:

(1) 对于未声明的变量只能使用isset()进行判断

(2)对于已声明的变量,为空判断用empty(),是否初始化判断用is_null()

5. 作用域只有三个:

(1)全局:函数之外创建,仅在当前脚本除函数之外的地方使用;

(2)局部:函数内部创建,仅能在函数中使用,外部不可访问;

(3)静态:函数内部创建,仅在函数中使用,函数执行完成它的值不丢失;

6.全局变量在函数内是无法直接引用的,局部变量在函数外也是无法直接引用,可以通过global来引用

   例如:$siteName = 'PHP中文网';

             function aaa(){

                   global  $siteName

                    return $siteName

                   }

              echo aaa()

7.静态变量,必须且仅能在函数中声明和使用

例如:function bbb(){

                  static $num = 1;   //static将变量只赋值一次

                  return '第'.$num.'次输出'.$num++;

           }

         //第一次输出1

         echo bbb();

       //第二次输出2

         echo bbb();

       //第三次输出3

         echo bbb();

       //第四次输出4

        echo bbb();

      //第五次输出5

       echo bbb();


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议