<?php
echo '<h3>2.变量类型与转换</h3>';
echo '<hr color="green">';
// 标量;单值变量,包括整数, 浮点数, 字符串, 布尔型
$age=2; //integer/int 整数
$salary=1253.56; //float 浮点数(小数)
$name='梁礼军'; //string //字符串
$isMarried=true; //boolean
// $isMarried=true; //等于改为false时不是零是空
// 标量的输出:echo,print, var dump()
echo $name.'的年龄是:'.$age.'工资:'.$salary.',是否已婚:'.$isMarried;
echo '<hr>';
print $name;
print '<br>';
var_dump($name);
echo '<hr color="green">';
// 2.复合类型;多值变量,数组和对象(一对多的关系)
$books=['php','mysql','html','css','javascript'];
echo '<pre>'; //格式化,原样输出
print_r($books);
// 第二种
var_dump($books);
// 单独测试专用临时对象
// $student= new stdClass();
// $student->name='小明';
// $student->course='css';
// $student->geade=78;
// echo '<hr>';
// print_r($student);
// // 第二种 var_dump输出
// var_dump($student);
echo '<hr color="erd">';
// 3.特殊类型:资源类型,null 用$file资源类型
$file= fopen('demo1.php','r') or die( '打开失败');
// 访问资源
echo fread($file,filesize('demo1.php'));
// 关闭资源
fclose($file);
$num=null;
echo is_null($num);
var_dump(is_null($num));
<?php
echo'<h2>3.is_null(),empty(),isset()测试专用文件</h2>';
echo '<hr color="green">';
/**
* is_null()什么时候返回true?
* 1.变量已声明但未赋值(未出始化),默认就是null
* 2.给变量直接初始化为 null: $a=null;
* 3.unset($va),当前$var为null
* 总结:不存在/没赋值/值为null则返回true
*/
$val1;//已声明,但未初始化
$val2= null; //已声明,初始化为null
$val3='php';//已声明,并初始化为非null值
unset($val3);
@var_dump ((is_null($val1) ? true:false));
// 可简写,但推荐使用上一种
// var_dump (is_null($val1));
@var_dump ((is_null($val2) ? true:false));
@var_dump ((is_null($val3) ? true:false));
/**
* 二。empty()
* 什么情况会被认为是empty()
* 1.空字符,空数组
* 2.null
* 3. 0 /'0'/false
*/
$str1 ='';
$str2 =[];
$str3 ='0';
$str4 =0;
$str5 =null;
$str6 =false;
$str7 =188;
echo '<hr>';
var_dump(empty($str1) ? true: false);//空字符串
var_dump(empty($str2) ? true: false);
var_dump(empty($str3) ? true: false);
var_dump(empty($str4) ? true: false);
var_dump(empty($str5) ? true: false);
var_dump(empty($str6) ? true: false);
var_dump(empty($str7) ? true: false);
var_dump((is_null($str1) ? true:false));
/**
* 判断用户是否在文本框输入内容:is_null这是empty()?
* 使用的是empty(),不能使用is_null()以为围殴is_null默认值已赋值为空
*/
// isset()是nnull的相反操作
// 总结:变量存在且不为null,返回true
$domain='www.shangsi.com';
$name =null;
$job;
echo '<hr>';
var_dump(isset($var));
var_dump(isset($domain));
var_dump(isset($name));
var_dump(isset($job));
/**
* 变量有二种状态;已声明与未声明
* 对与已声明过的变量有两种状态;已赋值与未赋值
* 变量可能会被赋值的有三种;null, 空 非空值
* 1.null is_null()
* 2.空 empty()
* 3.空非空 isset()
*
* 基本原则;
* 1。 对于未声明只能用isset()进行判断
* 2。 对于已声明, 为空empty(),是否初始化了用is_null()
*
*/
echo '<hr color="green">';
// 第一种场景: 变量未声明
// $a 未声明
// var_dump(isset($a) ? true:false);//用isset不报错
// 实例:分页显示数据,如果当前的url地址中含有分页变量,输出指定页,如果没有默认为1(首页)
// $page= isset($_GET['P'])? $_GET['P']:1;
$name = isset($_GET['page']) ? $_GET['page'] : 1;
echo $name;
echo '<hr color="green">';
@var_dump(is_null($a) ? true:false);//报错
echo '<hr color="green">';
var_dump(empty($a)? true: false);//保错
//第二种场景,变量已赋值
$a='www.liang.com';
$b='';
$c=null;
echo '<hr color="red">';
var_dump(isset($a));//有无判断
var_dump(empty($b));//非空判断
var_dump(is_null($c));//null判断
//如果不确定变量最终是什么类型德时候,建议使用null
变量的作用域:
实例
<?php echo'<h2>3.is_null(),empty(),isset()测试专用文件</h2>'; echo '<hr color="green">'; /** * is_null()什么时候返回true? * 1.变量已声明但未赋值(未出始化),默认就是null * 2.给变量直接初始化为 null: $a=null; * 3.unset($va),当前$var为null * 总结:不存在/没赋值/值为null则返回true */ $val1;//已声明,但未初始化 $val2= null; //已声明,初始化为null $val3='php';//已声明,并初始化为非null值 unset($val3); @var_dump ((is_null($val1) ? true:false)); // 可简写,但推荐使用上一种 // var_dump (is_null($val1)); @var_dump ((is_null($val2) ? true:false)); @var_dump ((is_null($val3) ? true:false)); /** * 二。empty() * 什么情况会被认为是empty() * 1.空字符,空数组 * 2.null * 3. 0 /'0'/false */ $str1 =''; $str2 =[]; $str3 ='0'; $str4 =0; $str5 =null; $str6 =false; $str7 =188; echo '<hr>'; var_dump(empty($str1) ? true: false);//空字符串 var_dump(empty($str2) ? true: false); var_dump(empty($str3) ? true: false); var_dump(empty($str4) ? true: false); var_dump(empty($str5) ? true: false); var_dump(empty($str6) ? true: false); var_dump(empty($str7) ? true: false); var_dump((is_null($str1) ? true:false)); /** * 判断用户是否在文本框输入内容:is_null这是empty()? * 使用的是empty(),不能使用is_null()以为围殴is_null默认值已赋值为空 */ // isset()是nnull的相反操作 // 总结:变量存在且不为null,返回true $domain='www.shangsi.com'; $name =null; $job; echo '<hr>'; var_dump(isset($var)); var_dump(isset($domain)); var_dump(isset($name)); var_dump(isset($job)); /** * 变量有二种状态;已声明与未声明 * 对与已声明过的变量有两种状态;已赋值与未赋值 * 变量可能会被赋值的有三种;null, 空 非空值 * 1.null is_null() * 2.空 empty() * 3.空非空 isset() * * 基本原则; * 1。 对于未声明只能用isset()进行判断 * 2。 对于已声明, 为空empty(),是否初始化了用is_null() * */ echo '<hr color="green">'; // 第一种场景: 变量未声明 // $a 未声明 // var_dump(isset($a) ? true:false);//用isset不报错 // 实例:分页显示数据,如果当前的url地址中含有分页变量,输出指定页,如果没有默认为1(首页) // $page= isset($_GET['P'])? $_GET['P']:1; $name = isset($_GET['page']) ? $_GET['page'] : 1; echo $name; echo '<hr color="green">'; @var_dump(is_null($a) ? true:false);//报错 echo '<hr color="green">'; var_dump(empty($a)? true: false);//保错 //第二种场景,变量已赋值 $a='www.liang.com'; $b=''; $c=null; echo '<hr color="red">'; var_dump(isset($a));//有无判断 var_dump(empty($b));//非空判断 var_dump(is_null($c));//null判断 //如果不确定变量最终是什么类型德时候,建议使用null
运行实例 »
点击 "运行实例" 按钮查看在线实例
<?php
echo '<h3>2.变量的作用域</h3>';
echo '<hr color="green">';
/**
* 作用只有三个
* 1。全局:函数之外创建的;
* 2.函数:函数内创建的,
* 3.静态:函数内创建的,仅在函数中使用
*/
$siteName='测试网';//全局变量
//超全局变量数组
// $GLOBALS['siteName']
/**
* 函数: 是脚本中具有特定功能的代码段,可以重复使用,
* 基本语法:
* 1.声明:function (argfuncName){#code...}
* 2表达式:$funcName=function(args){#code...}
* 调用;按名调用funcName(args)
*/
function hello()
{//函数内部是不能直接访问全局变量的
global $siteName;
$userName ='liangxiansheng';//局部
return '不开森'.$siteName.',我是:'.$userName;
echo '<hr color="green">';
//超全局变量数组
return '不开森'. $GLOBALS['siteName'].',我是:'.$userName;
}
echo hello();
//静态变量
echo '<hr color="green">';
function mystaic()
{
static $num=2;
// $num=2;
return '第'.$num.'次输出'.$num++.'<br>';
}
echo mystaic();
echo mystaic();
echo mystaic();
echo mystaic();
echo mystaic();
//超全局变量;$_SERVER,$_COOKE, $_SESSION,$_POST, $_REQUEST
//$_REQUEST=$_GET+$_POST+$_COOKIE
//
//
echo '<hr color="green">';
//超全局直接使用不需要声明
echo '我的姓名:'.$_GET['name'];
// 在函数中引用超全局变量
function sayName()
{
return '我叫:'.$_GET['name'];
}
echo sayName();
//超全局变量是系统预定义的,在用户创建的每一个php文件中,都会自动创建,不用用户去手工创建。
//超全局变量是滑作用域,不是滑脚本!!!