一、定义:变量是用于存储信息的"容器"。
分为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)
//朱老师————不对啊~不是啊~不对啊~不是啊~
?>点击 "运行实例" 按钮查看在线实例
手写作业。实在没有语言组织理解了


Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号