PHP

运算符

负数模运算

正负号 同 前面的数(被除数),按正数算

三目运算符

简写:$res = $a?:'1';

新简写:$res = $a??'1';

逻辑运算符

&& || !

AND OR NOT XOR

位运算符

<< >>

& | ^

数据类型

标量类型

bool 、 int 、 float 、 string

没有数组

字符串的隐式类型转换

1
2
3
4
5
$str1 = "123aasdf6666"; //开头有数字,为数字内容
$v1 = $str1 + 1; // int(124)

$str2 = "asdf1234"; // 开头没数组 为0
$v2 = $str2 + 1; // int(1) 并且有 Warning: A non-numeric value encountered in

运算转换

3/2 -> 1.5

预定义常量

__LINE__ 当前代码行号

use 使用命名空间

数组

数组的key为纯数字string时,会转隐式换成int类型

追加数组的下标,已有的最大整数下标+1

array_keys()

返回数组中部分的或所有的键名

第一个参数是数组

array_chunk() 分割数组

配置

1
extension=php_gd2.dll ; 绘图扩展

enctype 文件上传

将此属性设置为 multipart/form-data

日志

log_error 是否记录日志

logError 指定日志写入的文件路径

数学函数

rand(min,max) 随机整数 闭区间

sqrt() 平方根

round() — 对浮点数进行四舍五入

函数

函数名不区分大小写

array_merge 合并数组

1
array_merge(array ...$arrays): array

将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。

如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将 不会 覆盖原来的值,而是附加到后面。

unset($var) 删除数据

删除数组的其中一个值时,其余的下标不变,不会往前移

date("y/m/d") 格式化输出日期

y 2 位数字表示的年份
Y 4 位数字完整表示的年份

m 数字表示的月份,有前导零
M 三个字母缩写表示的月份

d 月份中的第几天,有前导零的 2 位数字
D 星期中的第几天,文本表示,3 个字母

字符串函数

basename 返回路径中的文件名部分

默认返回的是带后缀的

第二个参数指定后缀,返回后没有后缀

strcmp 二进制安全字符串比较

1
strcmp(string $string1, string $string2): int

‘A’ > ‘B’ > ‘Z’ > ‘a’ > ‘b’ > ‘z’

如果 string1 小于 string2 返回 -1;如果 string1 大于 string2 返回 1;如果两者相等,返回 0。

旧版本返回负数或正数

implode 数组 转 字符串

1
2
3
4
implode(
string $separator = '',
array $array
): string

参数 separator 为分割符

explode

将字符串转换为数组,第一个参数separator为分隔符

preg_match 正则表达式匹配

第三个参数,保存匹配结果,可选

setcookie() 创建cookie

图像

imagecopy 拷贝图像的一部分

imagecopymerge 可添加半透明水印 拷贝并合并图像的一部分

当 最后一个参数为 100 时,同 imagecopy

$_SERVER 数组

HTTP_HOST 获取Web服务器地址信息

流程替代语法

其基本形式就是把if,while,for,foreach 和 switch的左花括号({)换成冒号(:),把右花括号(})分别换成 “endif;”,“endwhile;”,“endfor;”,“endforeach;”和“endswitch;”。

文件

fopen 文件指针

1
2
3
4
5
6
fopen(
string $filename,
string $mode,
bool $use_include_path = false,
?resource $context = null
)
  • mode 指定指针位置和读写方式

ctime 属性

windows 修改文件名 不变

linux 修改文件权限、内容、路径 会改变