- 类型转换
- 数学函数
- 常量定义:define() 与const 的使用差异
- 魔术常量应用:__LINE__ 等特殊常量
目录
一、类型转换
二、数学函数
1、pi() 函数
2、min() 和 max() 函数
3、abs() 函数
4、sqrt() 函数
5、round() 函数
6、随机数
三、常量
1、创建 PHP 常量
2、const 关键字
3、const 与 define() 函数的区别
4、常量与变量的区别
四、魔术常量
一、类型转换
PHP 在变量声明时不需要定义类型。在这种情况下,变量的类型由存储的值决定。也就是说,如果 string 赋值给 $var,然后 $var 的类型就是 string。之后将 int 值赋值给 $var,它将是 int 类型。有时可能希望变量具有特定的数据类型, 这就需要通过类型转换来完成。
类型转换通过在值前面的括号中写入类型来将值转换指定的类型。
- (string) - 转换为字符串类型。
- (int) - 转换为整数类型。
- (float) - 转换为浮点类型。
- (bool) - 转换为布尔类型。如果值为 0、NULL、false 或为空,则 (bool) 会将其转换为 false,否则为 true。
- (array) - 转换为数组类型。转换为数组时,大多数数据类型都会转换为一个仅包含一个元素的索引数组。NULL 值会转换为一个空的数组对象。对象会转换为关联数组,其中属性名称成为键,属性值成为值。
- (object) - 转换为对象类型。转换为对象时,大多数数据类型都会转换为一个仅包含一个名为 "scalar" 的属性和相应值的对象。NULL 值会转换为一个空对象。索引数组会转换为对象,其中索引号作为属性名称,值作为属性值。关联数组会转换为对象,其中键作为属性名称,值作为属性值。
- (unset) - 转换为 NULL 类型。
二、数学函数
PHP 有一套数学函数,可以对数字进行数学运算,这些数学函数只处理 int 和 float 类型范围内的值。接下来我们一起来学习常用的数学函数。
1、pi() 函数
pi() :返回 PI 的值(圆周率值)。
echo pi(); // 输出 "3.1415926535898"
2、min() 和 max() 函数
min():用于查找一系列参数中的最小值。
max():用于查找一系列参数中的最大值。
echo min(-3, -2, -1, 0, 1, 2, 3); // 输出 "-3"
echo max(-3, -2, -1, 0, 1, 2, 3); // 输出 "3"
3、abs() 函数
abs() :返回一个数的绝对值。
echo abs(-3); // 输出 "3"
echo abs(3); // 输出 "3"
4、sqrt() 函数
sqrt() :返回一个数的平方根。
sqrt() :返回一个数的平方根。
5、round() 函数
round() :将浮点数四舍五入为最接近的整数。
echo round(6.7); // 输出 "7"
echo round(6.49); // 输出 "6"
echo round(-7.1); // 输出 "-7"
echo round(-7.6); // 输出 "-8"
6、随机数
rand(min, max) :返回随机整数。
参数 | 描述 |
min,max | 可选。规定随机数产生的范围。 |
如果没有提供可选参数 min 和 max,rand() 返回 0 到 RAND_MAX 之间的伪随机整数。例如,想要 10 到 100(包括 10 和 100)之间的随机数,用 rand(10, 100)。
echo rand(); // 输出 "0 到 RAND_MAX 之间的伪随机整数"
echo rand(10, 100); // 输出 "10 到 100 之间的随机整数"
三、常量
常量类似于变量,但一旦定义,它们就不能被更改或取消定义。
常量是一个简单值的标识符(名称)。在脚本执行期间,该值无法更改。有效的常量名以字母或下划线开头。与变量不同,常量在整个脚本中是自动全局的。
1、创建 PHP 常量
define(name, value, case-insensitive) 函数用于常量创建。
参数:
- name: 指定常量的名称
- value: 指定常量的值
- case-insensitive: 指定常量名称是否不区分大小写。如果设置为 true,则该常量不区分大小写。默认是 false。
注意:PHP 7.3.0 起,废弃定义不区分大小写的常量。自 PHP 8.0.0 开始,只接受 false 值,传递 true 将产生警告。
创建一个区分大小写的常量名称:
define("greeting", "Hello World!");
echo greeting;
2、const 关键字
也可以使用 const 关键字创建常量。
const PI = 3.14;
echo PI;
3、const 与 define() 函数的区别
- const 始终区分大小写。
- define() 具有不区分大小写的选项。
- const 不能在另一个块作用域内创建,例如在函数内部或 if 语句内部。
- define() 可以在另一个块作用域内创建。
4、常量与变量的区别
- 常量前面没有美元符号($)。
- 常量可以不用理会变量的作用域而在任何地方定义和访问。
- 常量一旦定义就不能被重新定义或者取消定义。
- 常量只能计算标量值或数组。
四、魔术常量
有九个魔术常量它们的值随着它们在代码中的位置改变而改变。例如 __LINE__ 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写,除了 ClassName::class 常量外,这些魔术常量在开头和结尾都带有双下划线。