博客列表 >4_12 细说变量与数组

4_12 细说变量与数组

JcLi的博客
JcLi的博客原创
2018年04月15日 00:14:33652浏览

代码:

(1)is_null(),empty(),isset()三个函数的功能,参数,返回值:

实例

<?php
 echo '<h3>is_null(),empty(),isset()区别</h3>';
 echo '<hr>';

  // 一、is_null()什么时候返回true?
  // 1.变量已声明但未初始化,默认为null值
  // 2.变量显示赋值为null
  // 3.unset()销毁后,变量为null值
  // 总结:变量不存在/没赋值/值为null,则返回true
 $val1;//已声明,未赋值
 $val2 = null;//用null初始化变量
 $val3 = 'php';
 unset($val3);//彻底销毁变量
 @var_dump(is_null($val1));//true
 var_dump(is_null($val2));//true
 @var_dump(is_null($val3));//true
 var_dump(is_null(''));//空字符串返回false
echo '<hr>';

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

// 三、isset()是null的取反操作
//   总结:变量已经存在,并且它的值不为null,返回true,否则为false
$domain = 'www.php.cn';//有值且不为空
$name = null;//用null初始化变量
$job;//已声明,未赋值
var_dump(isset($var));//false
var_dump(isset($domain));//true
var_dump(isset($name));//false
var_dump(isset($job));//false,未赋值并不报错,与is_null不同

运行实例 »

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

(2)变量的作用域:全局,局部,静态

实例

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

// $siteName = '我的博客';//全局变量
//全局变量自动成为全局变量数组中的一个键值对,键与变量对应
$GLOBALS['siteName'] = '我的博客';//全局变量替代语法
echo "$siteName";
echo '<hr>';
function hello(){
	global $siteName;//引用全局变量,使用全局变量数组,不必声明引入
	$userName = 'JcLi';//局部变量
	return '欢迎来到'.$siteName.',我是:'.$userName;
}
echo hello();
echo '<hr>';
//静态变量,必须且仅能在函数中声明和使用
function myStatic(){
	static $num = 1;
	return '第'.$num.'次输出'.$num++.'<br>';
}
echo '第一次执行完成后$num值:'.myStatic().'<br>';
echo '第二次执行完成后$num值:'.myStatic().'<br>';
echo '第三次执行完成后$num值:'.myStatic().'<br>';
echo '第四次执行完成后$num值:'.myStatic().'<br>';
echo '<hr>';

运行实例 »

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

手抄:

1.jpg2.jpg3.jpg

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