批改状态:未批改
老师批语:
<?php
echo "<h2>0412作业,is_null(),empty(),isset()用法</h2>";
print("<hr color='red'>");
//先学习一下var_dump()方法
$shuCountry = array('刘备', '关羽', '张飞' );
print('<pre>');
var_dump($shuCountry);
//var_dump()能打印数组,还等计算变量的字符数 此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
echo "<hr>";
//is_null() — 检测变量是否为 NULL
/**
* 一、is_null()什么时候返回true?
* 1.变量已声明但未初始化,默认为null值
* 2.变量显示赋值为null
* 3.unset()销毁后,变量为null值
* 总结:变量不存在/没赋值/值为null,则返回true
*/
$tes1;
$tes2 = null;
$tes3 = 'null';
var_dump(is_null($tes1)? '是' : '不是');
var_dump(is_null($tes2)? '是' : '不是');
var_dump(is_null($tes3)? '是' : '不是');
var_dump(is_null(''));//空值不是null
echo "<hr>";
/**
判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。
* 二、empty()什么时候返回true?
* 1.空字符串,空数组
* 2.null
* 3.0 / '0' / false
*
* 总结:
* 1. 如果一个变量不存在,它即是空,也是null,用is_null() / empty()都可以判断
* 2. 如果一个变量存在,但它的值对运行结果无影响,则视为空
* 3. null一定是空,但空不一定是null,因为它可能是空值或0或false
*/
$etes1;
$etes2 = '';
$etes3 = 0;
$etes4 = '0';
$etes5 = false;
$etes6 = null;
$etes7 = 'null';
var_dump(empty($etes1)? '是空的': '不是空的');
var_dump(empty($etes2)? '是空的': '不是空的');
var_dump(empty($etes3)? '是空的': '不是空的');
var_dump(empty($etes4)? '是空的': '不是空的');
var_dump(empty($etes5)? '是空的': '不是空的');
var_dump(empty($etes6)? '是空的': '不是空的');
var_dump(empty($etes7)? '是空的': '不是空的');
echo "<hr>";
/**
* isset()是null的取反操作
检测变量是否设置,并且不是 NULL。
* 总结:变量已经存在,并且它的值不为null,返回true,否则为false
*/
$istes1;
$istes2 = 0;
$istes3 = '';
$istes4 = null;
$istes5 = true;
$istes6 = false;
$istes8 = 'null';
var_dump(isset($istes1)? '有数据': '是空的');//是空的
var_dump(isset($istes2)? '有数据': '是空的');
var_dump(isset($istes3)? '有数据': '是空的');
var_dump(isset($istes4)? '有数据': '是空的'); //是空的
var_dump(isset($istes5)? '有数据': '是空的');
var_dump(isset($istes6)? '有数据': '是空的');
//var_dump(isset($istes7)? '有数据': '是空的');
var_dump(isset($istes8)? '有数据': '是空的');
echo "<hr>";
/*
* 作用域只有三个:
* 1.全局:函数之外创建,仅在当前脚本除函数之外的地方使用;
* 2.局部:函数内部创建,仅能在函数中使用,外部不可访问;
* 3.静态:函数内部创建,仅在函数中使用,函数执行完成它的值不丢失;
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。
在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问:
*/
$nameAll = '张飞';
$nameAll2 = '关羽';
echo '在函数外返回',$nameAll;
echo "<br>";
function Fname()
{
$Fname = '刘备';
echo '在函数内定义的变量',$Fname;
echo '<br>';
echo '在函数内访问全局变量',$nameAll;//函数不能访问全局变量
global $nameAll; //加上global 声明可以访问全局变量
echo '在函数内访问全局变量',$nameAll;
echo '<br>';
echo '在函数内访问全局变量',$GLOBALS['nameAll2']; //注意这种写法没有$符
# code...
};
Fname();
echo "<hr>";
/*
global 关键字用于函数内访问全局变量。
在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字:
PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。
,$GLOBALS['变量']
Static 作用域
当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。
要做到这一点,请在您第一次声明变量时使用 static 关键字:
*/
function Fstatic()
{
//$ax = 1; //这样声明不会保留后续累计结果
static $ax=1; //这样声明变量后续结果会被保留
echo '这是第'.$ax.'次打印'.$ax,'<br>';
$ax++;
};
Fstatic();
Fstatic();
Fstatic();
?>点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号