Blogger Information
Blog 49
fans 0
comment 1
visits 46939
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP 之 is_null(),empty(),isset()方法的使用技巧--2018年04月13日
失去过去的博客
Original
674 people have browsed it

实例

<?php
echo '<h3>3.is_null(),empty(),isset()区别</h3>';
echo'<hr>';
/*
 * 
 * 1.is_null() 什么情况下回出现null 
 *  1.1 变量已经声明但是还未赋值;
 * 	1.2 变量赋值为null;
 * 	1.3变量被销毁之后不存在 unset()会返回true;
 * 
 * 
 * 
 * 
 * */
 //未赋值
$varval1;
@var_dump(is_null($varval1)?true:false) ;//三元运算符语法:  判断条件?正确输出语句:错误输出语句;
echo '<hr>';
//已经赋值 但是值为null
$varval2=null;
var_dump(is_null($varval2)?true:false) ;
echo '<hr>';
$varval3 = 'ceshi';
unset($varval3) ;//变量卸载方法 
@var_dump(is_null($varval3)?true:false) ;
echo '<hr>';
var_dump(is_null(""));//空字符串返回false
echo '<hr>';

/*
 * 2.empty()  什么时候返回true?
 * 	2.1空字符串,空数组
 * 	2.2 null
 * 	2.3 0 / '0' / false
 * 	2.4表单中判断是否为空必须使用empty()方法
 * 
 *  总结 :
 * 	1.如果一个变量不存在 也就是空值 可以使用is_null() or emtpy() 判断
 * 	2.如果一个变量存在但是他的值不影响运行结果则视为空
 * 	3.null 一定是空 但是空不一定是 null 他可能是 0 '0' 或者false 空数组
 * 
 * 
 * 
 * 
 * */
$num1 =  0;
$num2 = "0";
$num3 = null;
$num4 = false;
$num5 = [];
$num6 = '';
$num7 = 'linqin';
var_dump(empty($num1));
echo '<hr color= "red">';
var_dump(empty($num2));
echo '<hr>';
var_dump(empty($num3));
echo '<hr>';
var_dump(empty($num4));
echo '<hr>';
var_dump(empty($num5));
echo '<hr>';
var_dump(empty($num6));
echo '<hr>';
var_dump(empty($num7));
echo '<hr>';
/*
 * 
 * 3.inset()是 null的取反操作
 * 	3.1变量已经存在 且值不为null 返回true  否则为false
 * 
 * 
 * 
 * */
 $isset1= 'php中文网';
 $isset2 = null;
 $isset3;
 $isset4 = 0;
  $isset5 = '';
var_dump(isset($isset1));
var_dump(isset($isset2));
var_dump(isset($isset3));
var_dump(isset($isset4));
var_dump(isset($isset5));
 echo '<hr color="red">';


/*
 * 总结:
 * 		1.变量有两种状态  已经声明  未声明
 * 		2.已经声明的变量也有2种状态: 已经赋值(已初始化) 未赋值(未初始化)
 * 		3.变量可能会被赋值的类型:null 空值 非空值
 * 				3.1 null值  is_null()方法判断
 * 				3.2 空值 empty()
 * 				3.3	空值或非空值 isset()
 * 		基本使用原则:
 * 			1.对于未声明的变量只能使用isset()判断
 * 			2.对于已经申明的变量 为空时 用empty() 是否初始化用is_null
 * 
 * 
 * 
 * 
 * 
 * 
 * */
 //实际使用场景
 
 	//1.变量未声明
 var_dump(isset($abc))? true:false;	
 	//不报错 ,返回false 表示为声明;
 	//实例:分页显示数据的时候 如果当前url中有存在分页变量page则输出指定页面,否则输出第一页
 	$name = isset($_GET['page'])? $_GET['page']:1;
 	echo '<hr>';
	//如果是null 则会返回true 并出现notice 
 	@var_dump(is_null($var)?true:false);
	echo '<hr>';
	//对于empty()来说null就是空 返回的值是true
	var_dump(empty($var)?true:false);
	echo '<hr>';
	
	
//	2.变量已经声明
	$str1 = 'www.baidu.com';
	$str2 = '';
	$str3 = null;	
	var_dump(isset($str1));  //有无判断
	var_dump(empty($str2));  //非空判断
	var_dump(is_null($str3)); //null
	
//	变量的初始化
//	1.在预知变量的类型的情况下 建议使用以下的初始化值
		$num = 0;//数值
		$str = "";//字符串
		$bool = false;//布尔
		$arr = [];//数组
		$obj = null;//对象
//	2.不确定变量最后是什么类型 建议使用null

	
?>

运行实例 »

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

实例 变量的作用域

<?php
/*
 * 变量的作用域
 *   1.全局作用已 //函数体外的变量
 * 		2.局部作用域  //函数体内的变量
 * 			3.静态作用域 // 当一个函数调用完后,它的所有变量都会被删除,如果想要某个局部变量不被删除,那么可以使用static关键字
 * 			
 * */
 //1.全局作用域
 $classname = '三年一班';//全局变量 全局作用域

 //全局变量在自动成为全局数组中的一个键值对 可以使用 $GLOBALS[KEY]的方式声明
$GLOBALS['$classname'] =  '三年一班'; 
echo $GLOBALS['$classname'] ;
echo "<hr>";
  /*函数:
  
   * 1.基本语法: 
   * 	1.1函数声明 :function funcname($args){ #code.
   * ... }
   * 	2.2函数表达式 :$funcname = function($args){#code...}
   * 
   * 2.函数调用
   * 	2.1 按名称调用 funcname($args,$args....);
   *	2.2 调用自身 递归  
   * 		(function($args){#code...})(); 
   * 
   * 
  */	
//2.局部作用域
//		
	function test(){
		//方法1.函数体内是无法直接引用全局变量的 需要通过 global 关键字引入全局变量
		//方法2.使用全局变量函数体$GLOBALS['$classname'] 全局数组的方式获取到全局变量
		//global $classname;//引用全局变量进入函数体内 
		
		$classnum = 52;
		
//		return $classname.'有'.$classnum.'个同学';
		return $GLOBALS['$classname'].'有'.$classnum.'个同学';// 使用全局变量函数体$GLOBALS['$classname'] 全局数组的方式获取到全局变量
		
		$classname = '三年10班';
		//外部无法访问函数体内的变量
	}
echo test();
echo '<hr>';
echo $classname;
echo '<hr>';
//3.静态作用域
	function staticvar(){
		static $num = 1; //函数调用完毕时 所有的变量都会被unset()卸载,如果不想卸载保存在内存中的时候需要 使用static关键字
		echo '第'.$num.'次,输出结果'.$num++;
		
		
	}

staticvar();
echo '<hr>';
staticvar();
echo '<hr>';
staticvar();
echo '<hr>';
staticvar();
//4.超全局变量
//系统内置的变量无需声明 如 $_GET $_POST $_SERVER $_SESSION $_COOKIE $_REQUEST
//全部是数组 跨作用域可以在全局和局部直接使用 超全局是指跨作用域不是跨文件 都是在当前脚本中的
echo '<hr>';
//echo $_GET['name'];
function getname(){
	return '我的名字是'.$_GET['name'];
}
echo getname();
 
?>

运行实例 »

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


Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post