Correction status:qualified
Teacher's comments:
一、定义:变量是用于存储信息的"容器"。
分为3大类:
标量:单值变量。包括整数int、浮点float、字符串string、布尔boolean
复合类型:多值。数组 array []、对象object
特殊类型:null resource
echo $age = 28; echo $salary = 3.14; echo $name = '時節'; echo $isMarried = true; // 标量输出方式:1 echo 2 print 3 var_dump(); // 复合类型输出方式:1 print_r 2 var_dump() // 特殊类型输出举例 $file = fopen('demo1.php', 'r') or die('打开失败');//资源句柄 echo fread($file, filesize('demo1.php')); fclose($file); echo $x; $num = null; var_dump(is_null($num));
二、变量类型检测
类型查询gettype($var)
类型检测is_type($var):有一个is_numeric() 是用来检测数字或者数字字符串的
三、类型转换
1.强制转换 (int)$var; (string)$var等;
2.临时转换(值变类型不变)intval(); floatval(); strval();
3.永久转换settype($var, 类型标识符)
$price = 123.56; echo gettype($price); echo (int)$price; echo (string)$price; echo gettype($price); echo $price; settype($price, 'int'); echo gettype($price); echo $price;
四、变量的检测
1.is_null(var) 什么时候返回true
未初始化(已经声明没有赋值)默认就是null;
直接赋值null $name = null;
unset($name),被注销时当前$name为null
$name1; $name2 = null; $name3 = 'PHP'; unset($name3); @var_dump(is_null($name1) ? true : flase); @var_dump(is_null($name2) ? true : flase); @var_dump(is_null($name3) ? true : flase);
2.empty(var)什么时候返回true
空字符串,空数组
null
0 '0' false
用户注册检测是否输入内容:文本框value值默认是‘’,如果用is_null检查。返回false有值,证明有输入,这显然不对
$str1 = ''; $str2 = []; $str3 = 0; $str4 = '0'; $str5 = null; $str6 = false; @var_dump(empty($str1) ? true : flase); @var_dump(empty($str2) ? true : flase); @var_dump(empty($str3) ? true : flase); @var_dump(empty($str4) ? true : flase); @var_dump(empty($str5) ? true : flase); @var_dump(empty($str6) ? true : flase); echo '<hr/>';
3.isset(var) null的相反操作。变量存在且不为null——这个实际比较常用
$domain = "中文网"; $name = null; $job; var_dump(isset($domain)); var_dump(isset($name)); var_dump(isset($job)); /医院 * 总结 * 变量有2中状态:声明,未声明 * 声明后2种状态:赋值,未赋值 * 赋值后3中状态:null,空,非空 * 对于未声明的检测isset * 已声明的 为空用 empty,是否初始化了用is_null */
注意2个区别
var_dump(isset($aaaa)); //未定义的 @var_dump(is_null($aaaa)); //根本没定义,但是默认null——true
4.作用域
1.全局变量:函数外创建
2.局部变量:函数内创建
3.静态变量:函数内创建,仅在函数中使用
<?php header("Content-type: text/html; charset=utf-8"); $sitename = '中文网';//全局 function hello(){ $username = '時節';//局部 // 函数内使用全局变量 global $sitename; //在创建变量时,php自动把变量放入全局数组$GLOBALS[]。所以也可以这样在函数内使用 // return '我是'.$username.'我喜欢'.$sitename; return '我是'.$username.'我喜欢'.$GLOBALS['sitename']; } echo hello()."<hr/>"; // 静态变量:函数内创建,仅在函数中使用 function myStatic(){ static $num = 1;//只有在第一次执行赋值,其余情况不赋值了 return '第'.$num.'次输出'.$num++.'<br/>'; } echo myStatic(); echo myStatic(); echo myStatic(); echo myStatic(); //超级全局变量:系统自动创建,但不是跨脚本,$_SERVER, $_SESSION, $_REQUEST($_COOKE + $_GET + $_POST) //朱老师————不对啊~不是啊~不对啊~不是啊~ ?>
点击 "运行实例" 按钮查看在线实例
手写作业。实在没有语言组织理解了