Blogger Information
Blog 11
fans 0
comment 0
visits 7583
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
0412变量的作用域与检测方法-2018年4月15日23时
huang2018的博客
Original
660 people have browsed it

一、 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();

运行实例 »

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


Correction status:qualified

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