搜索
博主信息
博文 11
粉丝 0
评论 0
访问量 9064
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
0412变量的作用域与检测方法-2018年4月15日23时
huang2018的博客
原创
805人浏览过

一、 is_null(),empty(),isset()三个函数的功能,参数,返回值,源码示例

实例

<?php
echo '<h3>3.is_null(),empty()isset()<h3>';
echo '<hr color="green">';
/**
*一、is_null()什么时候会返回true?
*1.变量已经声明但未赋值(未初始化),默认为null
*2.给变量赋值为null:$a=null;
*3.unset($var),则使$var变为null
*总结:不存在,没赋值,值为null,三种情况返回true
*/
$val1;
$val2 = null;
$val3 = 'php';
var_dump(is_null($val1)?true:false);
var_dump(is_null($val1)?0:2);

var_dump(is_null($val2));
var_dump(is_null($val3));
echo "<hr>";
unset($val3);
@var_dump(is_null($val3));

print '<hr color="green">';

/**
*二、empty()
*什么时候empty()返回true?
*	1.空字符串、空数组
*	2.null
*	3.0/'0'/false
*/
$str1 = '';
$str2 = [];
$str3 = '0';
$str4 = 0;
$str5 = null;
$str6 = false;
$str7 = 34567;

var_dump(empty($str1));
var_dump(empty($str2));
var_dump(empty($str3));
var_dump(empty($str4));
var_dump(empty($str5));
var_dump(empty($str6));
var_dump(empty($str7));
// 注意:在判断用户是否在文本框输入了内容时,要用empty()判断。因为在文本框的value值缺省值为''空字符串
echo "<hr>";
/**
* isset()是is_null的反操作
*变量存在且不为null,返回true
*/
$domain = 'www.php.cn';
$name = null;
$job;
$value = "";
echo '<hr>';
var_dump(isset($domain));
var_dump(isset($name));
var_dump(isset($job));
var_dump(isset($value));
/** 
*总结:
*	1.变量有两种状态:已声明和未声明
2.已声明的变量有两种状态:已赋值、未赋值
3.变量被赋值有三种:null、空值、非空值
	3.1 null is_null()
	3.2 空  empty()
	3.3 空或非空  isset()
	总结:基本原则
		1.对为声明的变量只能用isset()进行判断
		2.对已声明的,为空用empty(),是否初始化用is_null()
*/
		echo '<hr color="green">';
	//第一种场景:变量未声明
		var_dump(isset($a));	//不报警
		echo '<hr color="green">';
		var_dump(is_null($a));//报警		
		echo '<hr color="green">';
		var_dump(empty($a));//报警		

		echo '<hr color="green">';

		$page = isset($_GET['p']) ? $_GET['P']:1;
		echo $page;

	//第二种场景:变量已赋值
		$a = "www.php.cn";
		$b = '';
		$c = null;

		echo '<hr color="red">';
		var_dump(isset($a));  //有无
		var_dump(empty($b));	//非空
		var_dump(is_null($c));	//null判断

		//在不确定变量是什么类型时,建议用null初始化

运行实例 »

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

二、 变量的作用域: 全局,局部,静态,实例说明

实例

<?php
echo '<h3>4.变量作用域</h2>' ;
echo '<hr color = "green">';
/**
 *作用域:
 *1.全局:函数之外创建;
 *2.局部:函数内创建;
 *3.静态:函数内创建,仅在函数中使用。
 */
$siteName = 'php中文网';//全局

/** 
 *函数基本语法:1.声明:function (argments) {#codes...}
 			   2.表达式:$funcName = function (args) {#codes...}
 			   3.调用:按明调用 funcName(args)
 */
 
 // function hello(){
 // 	$userName = 'peter Zhu';//局部
 // 	return'欢迎来到'.$siteName.',我是:'.$userName;
 // }
 // echo hello();
 // echo '<hr>';
 
 // function hello (arg1) 
 // {
 // 	$userName = 'Peter Zhu';                 //局部
 // 	return '欢迎来到'.arg1.',我是:'.$userName;
 // }
 // echo hello($siteName);

  function hello () 
 {
 	// global $siteName;
 	$userName = 'Peter Zhu';                 //局部
 	return '欢迎来到'.$GLOBALS['siteName'].',我是:'.$userName;
 }
 echo hello();
 echo '<hr>';
//静态变量
function myStatic()
{
	static $num =1;
	return '第'.$num.'次输出'.$num++.'<br>';
}
echo myStatic();
echo myStatic();
echo myStatic();
echo myStatic();
echo myStatic();

/**
 *超级全局变量:$_SERVER,$_COOKE,$_SESSION,$_GET,$_POST,$_REQUEST,($_REQUEST=$_GET+$_POST+$_COOKE)
 */
ECHO '<hr color ="blue">';
echo '我的姓名是:'.$_GET['name'];
//在函数中引用超全局变量
function sayName(){
	return '我的姓名是:'.$_GET['name'];
}
echo sayName();

运行实例 »

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


批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

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

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