博客列表 >4月12日作业: 变量的作用域与检测方法

4月12日作业: 变量的作用域与检测方法

1
1原创
2018年04月17日 00:17:46625浏览

 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();
 ?>

运行实例 »

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


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