4.12-变量的类型,变量的判断,变量的作用域!
代码如下:
<?php echo "变量类型:数值型,字符串型,布尔型,数组型,对象型,资源型"; $o = (int)123.456; //将变量类型临时改变为整数型,原型类型不变! echo gettype($o); //查看变量的类型。 echo $o; echo "<hr>"; echo "今天学习了三个判断函数,分别是:is_null(),empty(),isset();这三种方法返回的值只有两个,true或flase"; echo "<hr>"; echo "is_null判断变量是否为null,返回true的条件有:1.变量声明,未赋值。2。变量未声明。3.值为NULL."; $a; $b=null; echo "<hr>"; @var_dump(is_null($a)); //声明的变量$a,未赋值。 输出是true. var_dump(is_null($b)); //变量已经声明,但值为null.输出是true. @var_dump(is_null($c)); //未声明$c变量,$c不存在,所以输出是true. echo "<hr>"; echo "empty()用法是判断变量是否为空。满足的条件有:1.值为空,空字符串或数组。2.值为null.3.值为0,false"; $aa = 0; $aaa = '0'; $bb = null; $cc = ''; $ccc = []; $dd = false; echo "<hr>"; //如果变量不存在,也返回true; var_dump(empty($aa)); //值为0,返回true; var_dump(empty($aaa)); //值为字符串0,是true; var_dump(empty($bb)); //值为null,返回true; null一定是空,但空不一定是null; var_dump(empty($cc)); //值为空字符串,返回true; var_dump(empty($ccc)); //值为空数组。返回true; var_dump(empty($dd)); //值为flase,因为false是空,所以反回true; $ee = "我喜欢php"; var_dump(empty($ee)); //因为$ee值不为空,所以返回false; echo "<hr>"; echo "isset()用法是判断是否有该变量或变量的值!"; $a1 = ''; $a2 = null; $a3 = '我在学习php'; echo "<hr>"; var_dump(isset($a1)); //变量存在,值为空字符串,返回true; var_dump(isset($a3)); //变量值存在,返回true; var_dump(isset($a2)); //变量值为null,返回false; var_dump(isset($a4)); //变量不存在,返回false; echo "<hr>"; var_dump(isset($a2)? true:false); //判断$a2是否有值或变量,如果有,返回true,如果没有,返回false; var_dump(isset($a3)? true:false); //判断$a3是否有值或变量,如果有,返回true,如果没有,返回false; echo "<hr>"; echo "变量在最终不知道会保存什么值时,建议用null!"; echo "<hr>"; echo "变量的作用域:1.全局变量 2.局部变量 3.静态变量 4.超全局变量(系统预设的,无法自定义)"; echo "全局变量,可作用于函数内外部,而局部变量只能作用于函数内部,"; echo "<hr>"; $ii = "我是中国人"; //声明一个全局变量,函数内外部都可以使用。 function a(){ $i = 100; //声明一个局部变量,仅函数内部可以使用。 return "$i".$GLOBALS['ii']; } echo a(); echo "<hr>"; function aa(){ static $u = 20; //变量为静态变量是,只会在函数中被赋值一次。则下面的自增测试有效,如果不是静态变量,那么每次执行完,变量值会被初始化为:20 return '测试自增'.$u.'第'.$u++.'次'; } echo aa(); echo aa(); echo aa(); ?>
点击 "运行实例" 按钮查看在线实例
运行效果图:
手写作业如下: