目录
1 变量概述
变量是用于存储信息的"容器"。
1.1 变量的声明及释放
(1)变量的声明:
- C/C++等在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。
- PHP/Python等弱类型语言,在变量赋值前不需要明确声明变量的类型,但是需要初始化。初始化是指给变量初次赋值。
(2)变量释放:PHP语言使用unset(变量名)
函数释放指定变量。
1.2 PHP变量的命名
变量可以是很短的名称(如 x 和 y)或者更具描述性的名称(如 age、carname、totalvolume)。注意,PHP 语句和 PHP 变量都是区分大小写的。
PHP 变量规则:
- 变量以 $ 符号开始,后面跟着变量的名称
- 变量名必须以字母或者下划线字符开始
- 变量名只能包含字母、数字以及下划线(A-z、0-9 和 _ )
- 变量名不能包含空格
- 变量名是区分大小写的($y 和 $Y 是两个不同的变量)
- 尽量不要使用PHP关键字作为变量名。如函数名echo等
1.3 PHP变量赋值方式
直接赋值:采用字符串、数值或已初始化的变量对变量赋值,赋值符号为=。
引用赋值:利用已初始化变量并带前缀&对变量赋值。
- 相当于取别名;
- 指向同一内存空间;
- 新旧变量有一个重新赋值时,另一个变量值将一同被修改。
例子:代码和浏览器浏览结果如下:
<?php
header("content-type:text/html;charset=utf-8");
$name1 = "ABC";
$name2 = &$name1;
echo "name1:$name1";
echo " | ";
echo "name2:$name2";
echo "<br>修改后:<br>";
$name2 = "EFG";
echo "name1:$name1";
echo " | ";
echo "name2:$name2";
?>
1.4 PHP可变变量
一个变量名称可以动态地设置和使用。
例子:将下述语句写入$$var.php文档,保存后通过浏览器访问时运行结果如下:
<?php
$name="zz";
$$name="qq";
echo $name;
echo "<br/>";
echo $$name;
echo "<br/>";
echo $zz;//为$$name
?>
2 PHP变量数据类型
变量类型是指保存在该变量中数据的数据类型,在计算机编程语言世界中,每个数据都有它的数据类型。
只有相同类型的数据才能相互操作。不同类型间直接相互操作会返回0(表示false),需要先进行类型转换才能相互操作。
PHP变量类型有:
- String(字符串)
- Integer(整型)
- Float(浮点型)
- Boolean(布尔型)
- Array(数组)(后续再专文介绍)
- Object(对象)(后续再专文介绍)
- NULL(空值)
2.1 字符串
一个字符串是一串字符的序列,就像 “Hello world!”。
声明:可以用单引号、双引号、定界符来定义:
单引号声明注意事项:
- 单引号括起来的字符串不能在包含单引号,如果要包含单引号需要使用反斜杠(\)转义。
- 单引号字符串不能正确识别与解析变量,仅认为是字符串。
- PHP不会解析单引号中的变量,因此在定义简单字符串时,使用单引号会使运行效率更高。
双引号声明注意事项:
- 双引号字符串中出现的变量能被变量值所代替,建议将变量名整体使用{}括起来。
- 双引号字符串中可以出现单引号。
- 双引号字符串中要输出特殊字符(如’ " $),需要使用反斜杠(\)转义。
定界符声明变量:
- 开始行:"$变量名=<<<HTML"其中<<<HTML是定界符的开始,大写字母,建议使用HTML;
- 中间行:字符串内容。
- 结束行:"HTML;"以标识符加分号结束。
- 开始行与结束行之后后不能有其他内容,包括空格与注释语句。
语法:
<!--字符串测试-->
<?php
header("content-type:text/html;charset=utf-8");
$str = "name";
echo '单引号:Hello,$str'; //执行结果为 单引号:Hello,$str
echo "<br>";
echo "双引号:Hello,{$str}"; //执行结果为 单引号:双引号:Hello,name
echo "<br>";
$test1=<<<HTML
定界符:Hello, $str
HTML;
echo $test1; //执行结果为 定界符:Hello, name
echo "<br>";
$test2=<<<HTML
This is DJ[' " $]
HTML;
echo $test2; //执行结果为 This is DJ[' " $]
?>
《hr/>
2.2 整型
整数是一个没有小数的数字。
整数规则:
- 整数必须至少有一个数字 (0-9)
- 整数不能包含逗号或空格
- 整数是没有小数点的
- 整数可以是正数或负数
- 整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)。
例子:
<?php
$x = 123;
var_dump($x); //执行结果为int(123)
echo "<br>";
$x = -123; // 负数
var_dump($x); //执行结果为int(-123)
echo "<br>";
$x = 0x8C; // 十六进制数
var_dump($x); //执行结果为int(140)
echo "<br>";
$x = 047; // 八进制数
var_dump($x); //执行结果为int(39)
?>
2.3 浮点型
浮点数是带小数部分的数字,或是指数形式。
例子:
<?php
$x = 10.365;
var_dump($x); //执行结果为float(10.365)
echo "<br>";
$x = 2.4e3; //创建指数
var_dump($x); //执行结果为float(2400)
echo "<br>";
$x = 8E-5; //创建指数
var_dump($x); //执行结果为float(8.0E-5)
?>
2.4 布尔型
(1)布尔型可以是 true 或 false。
(2)布尔型通常用于条件判断或控制某个功能是否执行。
(3)系统将对以下变量认为是false:
- 布尔类型false;
- 整型0;
- 浮点型0.0;
- 空白字符串或字符0;
- null值。
例子:
<?php
$x1 = false;
if($x1){echo "ture";}else{var_dump($x1);} //执行结果为bool(false)
echo "<br>";
$x2 = 0;
if($x2){echo "ture";}else{var_dump($x2);} //执行结果为int(0)
echo "<br>";
$x3 = 0.0;
if($x3){echo "ture";}else{var_dump($x3);} //执行结果为float(0)
echo "<br>";
$x4 = "";
if($x4){echo "ture";}else{var_dump($x4);} //执行结果为string(0) ""
echo "<br>";
$x5 = "0";
if($x5){echo "ture";}else{var_dump($x5);} //执行结果为string(1) "0"
echo "<br>";
$x6 = null;
if($x6){echo "ture";}else{var_dump($x6);} //执行结果为NULL
?>
2.5 数据类型转换
数据类型转换有两种类型,一种是自动类型转换,一种是强制类型转换。
自动类型转换:
- 有布尔值参与运算时,true将转化为整型1,false将转化为整型0。
- 有null值参与运算时,null值将转化为整型0再进行运行。
- 有整型和浮点型数据参与运算时,先把整型转化为浮点型在进行运算。
- 有字符串和数字型参与运算时,在程序运行中不太可控,最好避免。
强制类型转换:
- 在要装换的变量前加上括号括起来的目标类型:(int)、(bool)、(float)、(string)、(array)、(object)。
- 数据进行类型转换仅是参与运行,并非改变变量本身类型。
例子:
<?php
$x=true;
$y=1;
$z=$x+$y;
echo "x:{$x},is_bool:";
echo is_bool($x);
echo "<br>"; //这三句执行结果为 x:1,is_bool:1并换行
echo "y:{$y},is_int:";
echo is_int($y);
echo "<br>"; //这三句执行结果为 y:1,is_int:1并换行
echo "z:{$z},is_int:";
echo is_int($z);
echo "<br>"; //这三句执行结果为 z:2,is_int:1并换行
?>
3 常量
3.1 常量概述
(1)常量是一个简单值的标识符。该值在脚本中不能改变。
(2)一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。
(3)注意: 常量在整个脚本中都可以使用。
(4)常量的作用域是全局的,只能包含bool、int、float、string类型的数据。
3.2 定义常量
设置常量,使用 define() 函数,函数语法如下:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
该函数有三个参数:
- name:必选参数,常量名称,即标志符。
- value:必选参数,常量的值。
- case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
例子:
<?php
define("NAME","ABC",ture); //第三个参数时控制该变量名是否大小写敏感,设为TRUE时,使用name也可以引用该变量。
var_dump(NAME); //执行结果为string(3) "ABC"
?>
3.3 预定义常量
常量名 | 常量值 |
---|---|
_FILE_ | 当前文件名(包含路径) |
_LINE_ | 当前行数 |
_FUNCTION_ | 当前函数名 |
_CLASS_ | 当前类名 |
_METHOD_ | 当前对象方法名 |
PHP_OS | UNIX或WINNT等 |
PHP_VERSION | 当前PHP版本 |
DIRECTORY_SEPARATOR | 根据系统决定的目录分隔符\(Windows)或/(Linux) |
4 常量与变量的区别:
(1)常量前面没有美元符号$。
(2)常量只能用define()函数进行定义,不能通过赋值语句赋值或初始化。
(3)常量可以不用理会变量范围的规则而在任何地方定义和使用。
(4)常量一旦被定义就不能被重新定义或取消定义。
(5)常量只能包含bool、int、float、string类型的数据。
5 归纳
(1)掌握PHP变量的声明、释放、命名及赋值;
(2)了解PHP变量的数据类型;
(3)掌握各种数据类型的定义与使用方式;
(4)了解常量的定义与使用方式;
(5)了解预定义常量类型及含义。
(6)理解PHP常量与变量的区别;