博主信息
博文 38
粉丝 0
评论 1
访问量 37124
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
4月12日作业: 变量的作用域与检测方法
1
原创
759人浏览过

 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举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
  • 1
    2018-03-16 00:39:40
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学