博客列表 >is_null(),empty(),isset()区别与变量作用域

is_null(),empty(),isset()区别与变量作用域

Pengsir
Pengsir原创
2018年04月13日 18:57:55844浏览

实例

<?php
header("content-type:text/html;charset=utf8");
//is_null(),empty(),isset()的区别
/**
 * 一.is_null()
 * 1.声明了变量,未赋值(未初始化),默认是null,所以返回是true
 * 2.声明了变量,赋值为null,返回是true
 * 3.声明了变量,赋了一个非null值,将这个变量unset($val2)后,就变成了没定义,同第一种情况,返回true
 */
$val;
$val1=null;
$val2='php';
unset($val2);
var_dump(is_null($val));//bool(true)
var_dump(is_null($val1));//bool(true)
var_dump(is_null($val2));//bool(true)
echo '<hr>';
/*
 * 二.empty()
 * 1.空字符串,空数组,整数0,字符串0,null,false这些情况被认为是empty()
 * 2.判断用户在文本框输入的内容:用empty()  因为文本框value属性它的默认值为空字符串(value="");
 */
$str1='';
$str2=0;
$str3="0";
$str4=[];
$str5=null;
$str6=false;
var_dump(empty($str1));//bool(true)
var_dump(empty($str2));//bool(true)
var_dump(empty($str3));//bool(true)
var_dump(empty($str4));//bool(true)
var_dump(empty($str5));//bool(true)
var_dump(empty($str6));//bool(true)
echo '<hr>';
/*
 * 三.isset()正好与is_null()相反
 * 需满足两个条件:1.变量存在 2.变量不为null,返回true
 *
 */
$sta1='www.baidu.com';
$sta2=null;
$a='';
$sta3;//未赋值默认为null,返回为false
var_dump(isset($sta1));//bool(true)
var_dump(isset($sta2));//bool(false)
var_dump(isset($a));//bool(true)
var_dump(is_null($a));//bool(false)
var_dump(isset($sta3));//bool(false)
echo '<hr>';
/*
 * 总结:1.对于未声明只能用isset()进行判断
 * 2.对于已声明,为空用empty(),是否初化始用is_unll()
 */
/*
 * 1.什么是函数?
 * 函数就是脚本中具有特殊功能的代码块,可以重复调用
 * 函数的基本语法:
 *    1.第一种方法:function 函数名(参数){代码块}
 *     2.第二种以表达式:$函数名=function(参数){代码块}
 * 按名称调用发即可
 *
 * 变量的作用域有三个:
 * 1.全局:函数之外创建
 * 2.局部:函数之内创建
 * 3.静态:函数内创建,仅在函数中使用
 */

$name1='露西';
$name3='王大锤';
function call(){
    global $name3;
    $name2='李丽';
    return '现在开始点名:'.$name1.$name2.$name3;
}
echo call();//运行取不到$name1,因为$name1是全局变量,调call()只能拿到函数里局部的变量$name2;
echo '<hr>';
echo call();//使用关键字global(全局的),在函数中可以拿到全局变量$name3
echo '<hr color="red">';
//静态变量 访问静态变量只有在第一次执行的时候赋值,后面不在赋值,如果不是静态变量,每次执行都赋值
function test(){
    static $num=1;
    return '我做了'.$num.'次试验,'.'成功了'.$num++.'次';
}
echo test();//我做了1次试验,成功了1次
echo '<hr>';
echo test();//我做了2次试验,成功了2次
echo '<hr>';
echo test();//我做了3次试验,成功了3次

运行实例 »

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

总结:

  1. 对于未声明变量只能用isset()进行判断

  2. 对于已声明变量,为空用empty(),是否初化始用is_unll()
  3. 变量的作用域有三个:
    全局:函数之外创建
    局部:函数之内创建
    静态:函数内创建,仅在函数中使用

  4. 访问静态变量只有在第一次执行的时候赋值,后面不在赋值,如果不是静态变量,每次执行都赋值

  5. 什么是函数?
    函数就是脚本中具有特殊功能的代码块,可以重复调用

  6. 函数基本语法:

    第一种:function 函数名(参数){代码块}
    第二种以表达式:$函数名=function(参数){代码块}

手抄:

1.png2.png

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议