Blogger Information
Blog 38
fans 0
comment 1
visits 30417
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
4月12日作业: 变量的作用域与检测方法
1
Original
626 people have browsed it

 is_null(),empty(),isset()三个函数的使用方法

实例

<meta charset="utf-8">
<?php 

/**
 * is_null():
 * 1.变量为null
 * 2.变量未赋值
 * 3.unset()删除变量
 * 总结:变量不存在/没赋值/值为null,则返回true 
 */
	$val1 = null;
	$val2;
	$val3 = 123;
	unset($val3);

	var_dump((is_null($val1)? true :false));
	@var_dump((is_null($val2)? true :false));
	@var_dump((is_null($val3)? true :false));

	echo '<hr>';
	/**
	 * empty()
	 * 空字符串,空数组
	 * null:null一定是空,空不一定是null
	 * 0、'0'、false
	 * 
	 */
	
	$str1 = '';
	$str2 = [];
	$str3 = null;
	$str4 = 0;
	$str5 = false;
	var_dump(empty($str1)?true:false);
	var_dump(empty($str2)?true:false);
	var_dump(empty($str3)?true:false);
	var_dump(empty($str4)?true:false);
	var_dump(empty($str5)?true:false);

	/**
	 * 判断用户是否在文本框输入内容用:empty()
	 * 因为文本框value属性,默认为空
	 */
	
	/**
	 * isset()是null的相反操作
	 * 变量存在且不为null,返回true
	 * 判断变量有和无用isset()
	 */
	echo '<hr>';
	$text1 = '蚊子好烦人';
	$text2 = null;
	$text3;
	
	var_dump(isset($var));
	var_dump(isset($text1));
	var_dump(isset($text2));
	var_dump(isset($text3));

	/**
	 * 总结:
	 * 变量两种状态:已声明和未声明
	 * $var是未声明为赋值
	 * 对于已经声明过的变量有两种:已赋值,未赋值:text3未赋值
	 * 变量可能会被赋值有三种:null,空,非空
	 * null is_null()
	 * 空 :empty()
	 * 空或非空 isset()
	 *
	 * 基本原则:
	 * 对于未声明的只能有isset()
	 * 对于已经声明的:为空用empty(),是否初始化用is_null()
	 */
	
	echo '<hr>';
	// 变量未声明
	// 用isset判断不报警
	var_dump(isset($a));
	// 实例 :分页显示数据,如果当前的url地址中有分页变量p,输入指定页
	// 如果没有就默认第一页
	// 如果p存在了,就输入p,如果没有就输入1
	$page = isset($_GET['p']) ? $_GET['p']:1;
	echo $page;
	//没有赋值,就默认给null 
	@var_dump(is_null($a));
	// null就是空,空不一定时null
	var_dump(empty($a));

	// 第二种,变量已经赋值了
	$a = '123';
	$b = '';
	$c = null;
	echo '<hr>';
	var_dump(isset($a));
	var_dump(empty($b));
	var_dump(is_null($c));

	/**
	 * 什么时候用null
	 * 如果不确定变量最终是什么类型的时候,用null初始化
	 * 对象建议用null初始化
	 */
 ?>

运行实例 »

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

变量的作用域: 全局,局部,静态

实例

<meta charset="utf-8">
<?php 
	/**
	 * 函数:是脚本中具有特点功能的代码段,(可以重复调用)
	 * 语法:声明:function funcName (参数){代码段}
	 * 表达式:$funcName = function(args){代码段}/匿名函数/不需要函数名
	 * 调用:按名称调用 : funcName(arg)
	 * 三种模式:
	 *  全局
	 * 局部
	 * 静态
	 */
	// 全局,只要不是在函数中创建就是全局
	$siteName = '蚊子很烦人';

	// function是函数关键字
	// 在函数被创建就是局部
	function hello()
	{
		// 函数内部不能直接访问全局变量
		// 作用域不一样
		// global $siteName;声明即可访问全局变量
		// 可以直接用全部数组替换
		$userName = 'admin';
		// return 'Hello'.$siteName.',我是:'.$userName;
		return 'Hello'.$GLOBALS['siteName'].',我是:'.$userName;
	}
	echo hello();
	echo '<br>';
	/**
	 * 静态变量
	 * 变量只有在第一次执行的时候赋值,之后就不会赋值了
	 */
	function myStatic(){
		static $num = 1;
		return '第'.$num.'次输出'.$num++.'<br>';
	}
	echo myStatic();
	echo myStatic();
	echo myStatic();

	/**
	 * 超级全局变量:$_SERVER,$_COOKE,$_SESSION,$_GET,$_POST,$_REQUEST
	 * $_REQUSET = $_GET+$_POST+$_COOKE
	 */
	 echo '<hr>';
	 // get从url中传入?
	 echo '我的姓名是:'.$_GET['name'];
	 echo '<hr>';
	 //在函数中引用
	 function sayName(){
		return '我的名字是:'.$_GET['name'];
	}

	echo sayName();
 ?>

运行实例 »

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


Correction status:Uncorrected

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
  • 1
    2018-03-16 00:39:40
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!