数据类型
String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。
(仅记录部分)
整型Integer
整数是一个没有小数的数字。
整数规则:
- 整数必须至少有一个数字 (0-9)
- 整数不能包含逗号或空格
- 整数是没有小数点的
- 整数可以是正数或负数
- 整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)。
PHP var_dump() 函数返回变量的数据类型和值
var_dump() 函数用于输出变量的相关信息。
var_dump() 函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
echo,print,print_r,var_dump 的区别
1.echo
输出一个或者多个字符串。
2.print
和 echo 最主要的区别: print 仅支持一个参数,并总是返回 1。
3.print_r
打印关于变量的易于理解的信息,如果给出的是 string、integer 或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似。 记住,print_r() 将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。
4.var_dump
此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
5.var_dump 和 print_r 的区别
var_dump 返回表达式的类型与值而 print_r 仅返回结果,相比调试代码使用 var_dump 更便于阅读。
浮点型Float
浮点数是带小数部分的数字,或是指数形式。
布尔型Boolean
布尔型可以是 TRUE 或 FALSE。
数组Array
数组可以在一个变量中存储多个值。
对象Object
对象数据类型也可以用于存储数据。对象必须声明。
首先使用class关键字声明类对象。类是可以包含属性和方法的结构。在类中定义数据类型,然后在实例化的类中使用数据类型。
NULL 值
NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。
NULL 值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别。
类型比较
- 松散比较:使用两个等号
==
比较,只比较值,不比较类型。 - 严格比较:用三个等号
===
比较,除了比较值,也比较类型。
常量
常量是一个简单值的标识符。该值在脚本中不能改变。
一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。
注意: 常量在整个脚本中都可以使用。
设置 PHP 常量
设置常量,使用 define() 函数,函数语法如下:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
该函数有三个参数:
- name:必选参数,常量名称,即标志符。
- value:必选参数,常量的值。
- case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。
字符串变量
字符串变量用于存储并处理文本。
字符串变量用于包含有字符的值。
当赋一个文本值给变量时,文本值加上单引号或者双引号。
并置运算符
在 PHP 中,只有一个字符串运算符。并置运算符 (.) 用于把两个字符串值连接起来。
<?php
$txt1="Hello world!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2; //使用了两次并置运算符。这是由于我们需要在两个字符串之间插入一个空格。
?>
strlen() 函数
strlen() 函数返回字符串的长度(字符数)。
strlen() 常常用在循环和其他函数中,因为那时确定字符串何时结束是很重要的。(例如,在循环中,我们需要在字符串中的最后一个字符之后结束循环。)
strpos() 函数
strpos() 函数用于在字符串内查找一个字符或一段指定的文本。
如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
运算符
包含 算术运算符、 赋值运算符、 递增/递减运算符、 比较运算符、 逻辑运算符、 数组运算符、 三元运算符、 组合比较符(PHP7+)。其中每样运算符都有运算符优先级。
因为在其他语言中,接触过算术运算符等,该文主要整理少见/自己不熟悉 以及比较重要的部分。
PHP7+ 版本新增整除运算符 intdiv()
<?php
var_dump(intdiv(10, 3)); //int(3)
?>
在逻辑运算符中,“x and y” 和 "x && y"是一样的, “x or y” 和 "x || y "是一样的
"x xor y" 是异或,如果 x 和 y 有且仅有一个为 true,则返回 true。例如 x=6
y=3 (x == 6 xor y == 3) 返回 false
数组运算符
运算符 | 名称 | 描述 |
---|---|---|
x + y | 集合 | x 和 y 的集合 |
x == y | 相等 | 如果 x 和 y 具有相同的键/值对,则返回 true |
x === y | 恒等 | 如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true |
x != y | 不相等 | 如果 x 不等于 y,则返回 true |
x <> y | 不相等 | 如果 x 不等于 y,则返回 true |
x !== y | 不恒等 | 如果 x 不等于 y,则返回 true |
三元运算符
(expr1) ? (expr2) : (expr3)
表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。
组合比较符(PHP7+)
PHP7+ 支持组合比较符(combined comparison operator)也称之为太空船操作符,符号为<=>
。组合比较运算符可以轻松实现两个变量的比较,当然不仅限于数值类数据的比较。
$c = $a <=> $b;
解析如下:
- 如果 $a > $b, 则 $c 的值为 1。
- 如果 $a == $b, 则 $c 的值为 0。
- 如果 $a < $b, 则 $c 的值为 -1。
运算符优先级
说明:左 = 从左到右,右 = 从右到左。
运算符优先级中,or 和 ||,&& 和 and 都是逻辑运算符,效果一样,但是其优先级却不一样。
条件语句
- if 语句 - 在条件成立时执行代码
- if…else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码
- if…elseif…else 语句 - 在若干条件之一成立时执行一个代码块
- switch 语句 - 在若干条件之一成立时执行一个代码块
数组
数组是一个能在单个变量中存储多个值的特殊变量。
在 PHP 中,array() 函数用于创建数组:
array();
在 PHP 中,有三种类型的数组:
- 数值数组 - 带有数字 ID 键的数组 关联数组
- 带有指定的键的数组,每个键关联一个值 多维数组
- 包含一个或多个数组的数组
数值数组
自动分配 ID 键(ID 键总是从 0 开始):$cars=array("Volvo","BMW","Toyota");
人工分配 ID 键:$cars[0]="Volvo"; $cars[1]="BMW"; $cars[2]="Toyota";
获取数组的长度 - count() 函数
count() 函数用于返回数组的长度(元素的数量):
<?php
$cars=array("Volvo","BMW","Toyota");
echo count($cars);
?>
遍历数值数组
可以用for循环
关联数组
关联数组是使用分配给数组的指定的键的数组。
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
或者
$age['Peter']="35"; $age['Ben']="37"; $age['Joe']="43";
随后可以在脚本中使用指定的键:
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>
遍历关联数组
遍历并打印关联数组中的所有值,可以使用 foreach 循环
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
数组排序
- sort() - 对数组进行升序排列
- rsort() - 对数组进行降序排列
- asort() - 根据关联数组的值,对数组进行升序排列
- ksort() - 根据关联数组的键,对数组进行升序排列
- arsort() - 根据关联数组的值,对数组进行降序排列
- krsort() - 根据关联数组的键,对数组进行降序排列