Blogger Information
Blog 46
fans 1
comment 1
visits 30458
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
变量的作用域与检测方法-2018年4月12日
笨鸟先飞
Original
614 people have browsed it

is_null()  ,  empty()  ,  isset()


实例

<?php
echo '<h3>is_null()  ,  empty()  ,  isset()</h3>';
echo  '<hr  color="red">';

// 一、is_null()什么时候会返回true?
// 1.变量已经声明但未赋值(未初始化),默认就是null
// 2.给变量直接初始化为null:$a = null;
// 3.unset($var),当前$varw为null(相当于删除变量值)

// 总结:不存在/没赋值/值为null  则返回true


$var1;//变量已声明,未初始化
$var2 = null;//变量已声明,初始化为null
$var3 = 'php';//变量已声明,并初始化为非null
$var4 = '';
unset($var3);

@var_dump((is_null($var1) ? true : false));
// @var_dump(is_null($var1));

var_dump((is_null($var2) ? true : false));
//在外用unset($var)
@var_dump((is_null($var3) ? true : false));
var_dump((is_null($var4) ? true : false));



// 二、empty()【空】
// 什么情况会被认为是enpty()
// 1.空字符串,空数组
// 2.null{null就是空,但空不一定是null}
// 3.0 / '0' /false

$str1 = '';
$str2 = [];
$str3 = '0';
$str4 = 0;
$str5 = null;
$str6 = false;
$str7 = 25;
echo '<hr>';
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));
var_dump((empty($str6) ? true : false));
var_dump((empty($str7) ? true : false));

// 思考:判断用户是否在文本框输入了内容:is_null还是empty?

// 答案:empty
// 文本框的默认值就空:vaule='';所以用empty()



echo '<hr>';
// isset()是null的相反操作
// 总结:变量存在且不为null,返回true

$domain = 'www.tb.com';
$name = null;
$job;
var_dump(isset($domain ));
var_dump(isset($name));
var_dump(isset($job));


// 总结:
//    1.变量就二种状态,已声明和未声明
//    2.对于已经声明过的变量也有二种状态:已赋值,未赋值
//    3.变量可能会被赋值的三种:null, 空 , 非空值
//          3.1 null        用     is_null()
//          3.2 空          用      empty()
//          3.3 空或非空    用      isset()

// 基本原则:
//   1.对于未声明的只能用isset()进行判断
//   2.对于已声明,为空用empty(),是否初始化了用is_null()

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

// 第一种场景:变量未声明
// $a
var_dump((isset($a) ? true : false));//不报警,可以判断未变量的
//实例:分页显示数据,如果当前的url地址中有分页变量p,输出指定页,   如果没有默认为1
// $page = isset($_GET['p']) ? $_GET['p'] : 1;
// echo $page;
@var_dump(is_null($a) ? true : false);//报警
var_dump(empty($a) ? true : false);

// 第二种场景:变量已经赋值

$a = 'www.tb.com';
$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>变量的作用域</h3>';
echo  '<hr  color="red">';

// 作用域只有三个:
// 1.全局:函数之外创建的
// 2.局部:函数内创建的
// 3.静态 :函数内创建的,仅在函数中使用


$siteName = 'www.qq.com'; //全局的

//全局变量数组
// $GLOBALS['siteName']

// 函数:是脚本中具有特定功能的代码段,可以重复调用
// 基本语法:
//     1.声明:function function(arg) { #code  }
//     2.表达式:$funcName = function(args) { #code }

//     调用:按明调用 funcName(args)

function good(){
	//函数内部是不能直接访问全局变量
	$userName = '哈哈是哈哈'; //局部变量
    // global $siteName;
	return '欢迎来到'.$GLOBALS['siteName'].'我叫:'.$userName;
	// return '欢迎来到'.$siteName.'我叫:'.$userName;
}

echo good();
echo  '<hr  color="red">';


//静态变量
function mystatic(){
	static $num = 1;

	return  $num.'个月出去旅游'.$num++.'次'.'<br>';
}

echo mystatic();
echo mystatic();
echo mystatic();
echo mystatic();
echo mystatic();
echo mystatic();


// 超级全局变量:$_SERVER,$_COOKIE,$_GET,$_POST,$_REQUEST,$_SESSION
// $_REQUEST=$_GET+$_POST+$_COOKIE

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

// 可以在全局直接引用超全局变量

echo '我叫hello:'.$_GET['name'];
echo  '<hr  color="yellow">';

//在函数中引用超全局变量
function sayName(){
     return '我叫hello:'.$_GET['name'];
}

echo sayName();

//超全局变量是系统自定义的,在用户创建的每一个php文件中,都是会自动生成,不用用户手工去创建。

运行实例 »

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



手写代码:作业图片IMG_3070_meitu_1.jpg

作业图片IMG_3071_meitu_2.jpg

作业图片IMG_3072_meitu_3.jpg

作业图片IMG_3073_meitu_4.jpg

作业图片IMG_3074_meitu_5.jpg

作业图片IMG_3075_meitu_6.jpg

作业图片IMG_3076_meitu_7.jpg

作业图片IMG_3077_meitu_8.jpg

作业图片IMG_3078_meitu_9.jpg

作业图片IMG_3079_meitu_10.jpg

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