Blogger Information
Blog 26
fans 0
comment 0
visits 16511
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP变量和作用域
瘦不下来的博客
Original
588 people have browsed it

null、empty、inset代码:

实例

<?php
echo '<h3>3.is_null(),empty(),isset()区别</h3>';
//特别提示:这三个函数仅适用于变量判断,不要直接到用字面量上面
echo '<hr color="green">';
/**


$val1;  //已声明,但未赋值
$val2 =  null; //直接用null初始化变量
$val3 = 'php';
unset($val3);  //彻底销毁变量

//注: 使用三元运算符输出true或false仅仅是为了直观,完全可以省略
@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

/**********************************************************************/



$str1 = '';
$str2 = [];
$str3 = '0';
$str4 = 0;
$str5 = null;
$str6 = false;
$str7 = 'peter zhu';

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


 */

$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不同

/*******************************************************************/



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

//第一种场景: 变量未声明
//$a未声明
var_dump(isset($a) ? true : false);  //不报错,返回false表示未声明
//实例:在分页显示数据的时候,如果当前的url中有分页变量page,则输出指定页,否则就默认输出第一页数据
$name = isset($_GET['page']) ? $_GET['page'] : 1;
//is_null会给出警告,并自动执行 $a = null, 所以会返回true
var_dump(is_null($a) ? true : false);
//因为未声明的变量会自动初始化为null,而对于值为null的变量,empty()会认为是空,所以返回true
var_dump(empty($a) ? true : false);

// 第二种场景: 变量已声明
$a = 'www.php.cn';
$b = '';
$c = null;

echo '<hr color="blue">';
var_dump(isset($a));  //有无判断
var_dump(empty($b));  //非空判断
var_dump(is_null($c)); //null

//初始化变量的原则:
//1.在预知变量类型的情况下
$num = 0; //数值
$userName = ''; //字符串
$isPass = false; //布尔
$books = []; //数组
$student = null; //对象

//2.不确定变量最终会保存什么值,建议用null进行初始化

运行实例 »

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

作用域:

实例

<?php
echo '<h3>5.变量作用域(重点)</h3>';
echo '<hr color="green">';
/*
 * 作用域只有三个:
 * 1.全局:函数之外创建,仅在当前脚本除函数之外的地方使用;
 * 2.局部:函数内部创建,仅能在函数中使用,外部不可访问;
 * 3.静态:函数内部创建,仅在函数中使用,函数执行完成它的值不丢失;
*/
$siteName = 'PHP中文网'; //全局变量
//全局变量自动成为全局变量数组中的一个键值对,键与变量对应
$GLOBALS['siteName']='PHP中文网'; //全局变量替代语法


 */

function hello()
{
  global $siteName; //引用全局变量,使用全局变量数组,不必声明引入
  $userName = 'Peter Zhu'; //局部变量
  // 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>';  


//可以在全局直接引用
echo '我的姓名是:'.$_GET['name'];

//也可以在函数中直接引用
function sayName()
{
  //超全局变量不需要使用关键字 global 进行声明
  return '我的姓名是:'.$_GET['name'];
}

//调用函数
echo sayName();

运行实例 »

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


Correction status:Uncorrected

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