博客列表 >0412变量的作用域与检测方法-2018年4月15日23时

0412变量的作用域与检测方法-2018年4月15日23时

huang2018的博客
huang2018的博客原创
2018年04月15日 23:37:33659浏览

一、 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 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议