Blogger Information
Blog 34
fans 0
comment 1
visits 22283
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
0412is_null(),empty(),isset()方法使用与变量作用域17:00
丝丝心动的博客
Original
634 people have browsed it

通过对is_null(),empty(),isset()方法使用与变量作用域的学习,了解到is_null(),empty(),isset()方法仅适用于变量判断,不能直接到用字面量上面,is_null()在变量不存在/没赋值/值为null时返回true,empty()在空字符串,空数组,null,0 / '0' / false时返回true,isset()是null的取反操作:变量已经存在,并且它的值不为null,返回true,否则为false等。

一、is_null(),empty(),isset()方法使用代码:

<?php
echo '<h3>is_null(),empty(),isset()</h3>';
//这三个函数仅适用于变量判断,不要直接到用字面量上面
echo '<hr color="green">';
/**
 * 一、is_null()什么时候返回true?
 * 1.变量已声明但未初始化,默认为null值
 * 2.变量显示赋值为null
 * 3.unset()销毁后,变量为null值
 * 总结:变量不存在/没赋值/值为null,则返回true 
 */
$val1;  //已声明,但未赋值
$val2 =  null; //直接用null初始化变量
$val3 = 'java';
unset($val3);  //彻底销毁变量

@var_dump(is_null($val1) ? true : false); //true
var_dump(is_null($val2) ? true : false); //true
@var_dump(is_null($val3) ? true : false); //true
var_dump(is_null('')); //空字符串返回false
/**
 * 二、empty()什么时候返回true?
 * 1.空字符串,空数组
 * 2.null
 * 3.0 / '0' / false
 *
 * 总结:
 * 1. 如果一个变量不存在,它即是空,也是null,用is_null() / empty()都可以判断
 * 2. 如果一个变量存在,但它的值对运行结果无影响,则视为空
 * 3. null一定是空,但空不一定是null,因为它可能是空值或0或false
 */
$str1 = '';
$str2 = [];
$str3 = '0';
$str4 = 0;
$str5 = null;
$str6 = false;
$str7 = '马云';
echo '<hr>';
var_dump(empty($str1) ? true : false); //空字符串
var_dump(empty($str2) ? true : false); //空数组
var_dump(empty($str3) ? true : false); //字符型数字0 
var_dump(empty($str4) ? true : false); //数字0
var_dump(empty($str5) ? true : false); //null值
var_dump(empty($str6) ? true : false); //布尔false
var_dump(empty($str7) ? true : false); //有值且不为空,返回false

/**
 * 三、isset()是null的取反操作
 * 总结:变量已经存在,并且它的值不为null,返回true,否则为false
 */
$domain = 'www.php.cn';
$name = null;
$job;
echo '<hr>';
var_dump(isset($var));
var_dump(isset($domain) ? true : false);
var_dump(isset($name) ? true : false);
var_dump(isset($job) ? true : false); //false,未赋值并不报错,与is_null不同

is_null(),empty(),isset()方法使用代码效果:

1.png

is_null(),empty(),isset()方法s手抄作业:

3.JPG

4.JPG

二、变量作用域代码:

<meta charset="utf-8">
<?php
echo '<h3>变量作用域</h3>';
echo '<hr color="green">';
/*
 * 作用域只有三个:
 * 1.全局:函数之外创建,仅在当前脚本除函数之外的地方使用;
 * 2.局部:函数内部创建,仅能在函数中使用,外部不可访问;
 * 3.静态:函数内部创建,仅在函数中使用,函数执行完成它的值不丢失;
*/
$siteName = '京东'; //全局变量
//全局变量自动成为全局变量数组中的一个键值对,键与变量对应
$GLOBALS['siteName']='京东'; //全局变量替代语法
function hello()
{
  global $siteName; //引用全局变量,使用全局变量数组,不必声明引入
  $userName = '客服123'; //局部变量
  // return '欢迎来到'.$siteName.',我是:'.$userName;没有效果
  return '欢迎来到'.$GLOBALS['siteName'].',我是:'.$userName;
}
echo hello();  //函数调用
echo '<hr color="red">';
//静态变量,必须且仅能在函数中声明和使用
function myStatic()
{
  static $num = 1;
  //$num++,先将$num值输出后再加1
  return '第'.$num.'次输出'.$num++.'<br>';
}

echo '第一次执行完成后$num值:'.myStatic().'<br>';
//第一次执行完成后$num值为2
echo '第一次执行完成后$num值:'.myStatic().'<br>';
//第二次执行完成后$num值为3
echo '第一次执行完成后$num值:'.myStatic().'<br>';
//第三次执行完成后$num值为4
echo '第一次执行完成后$num值:'.myStatic().'<br>'; 
/****************************************************/
/*
 * 超全局变量:$_SERVER,$_COOKIE,$_SESSION,$_GET,$_POST,$_REQUEST
 * 1. 属预定义变量,全部是数组,拿来就用,不需要声明;
 * 2. 跨作用域,在全局和局部(函数内部)都可以直接使用;
 * 3. 跨作用域不是跨脚本,所谓超全局,包括全局,都是指在当前脚本文件中。
 */
echo '<hr color="blue">';
//可以在全局直接引用
echo '我的姓名是:'.$_GET['name'];
//也可以在函数中直接引用
function sayName()
{
  //超全局变量不需要使用关键字 global 进行声明
  return '我的姓名是:'.$_GET['name'];
}
//调用函数
echo sayName();

变量作用域代码效果:

2.png

总结:通过对is_null(),empty(),isset()方法使用与变量作用域的学习,了解到is_null(),empty(),isset()方法仅适用于变量判断,不能直接到用字面量上面,is_null()在变量不存在/没赋值/值为null时返回true,empty()在空字符串,空数组,null,0 / '0' / false时返回true,isset()是null的取反操作:变量已经存在,并且它的值不为null,返回true,否则为false。

作用域只有三个:
  1.全局:函数之外创建,仅在当前脚本除函数之外的地方使用;
  2.局部:函数内部创建,仅能在函数中使用,外部不可访问;
  3.静态:函数内部创建,仅在函数中使用,函数执行完成它的值不丢失;


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