php8和php7区别(php80和php74)
phpwamp的自定义设置php版本有啥用?通常用哪个版本有啥讲究吗?
看你的需求了,有的网站程序是旧版本,就切换到旧版本,有的网站是新版本,就切换到新版本,有的时候需要同时运行旧版本和新版本的网站程序,也可以使用phpwamp同时运行新旧不同的PHP版本,这玩意功能挺多的,爱怎么玩怎么玩,测试蛮方便的。

php里说出数组的常用函数及用法?
PHP常用操作数组的函数
变量和数组的转换
compact() 将变量整合成数组
extract() 将数组中的每个值以键的名分解成变量
变量和字符串转换
explode() 以某个子串分解字符串成数组
implode() 将一维数组根据某个符号拼接成字符串
数组与数组之间关系
array_merge() 合并/并集
array_diff() 差集
array_intersect() 交集
数组值的操作
array_pop() 删除(弹出)数组最后一个值
array_push() 向数组中追加一个值
判断数组是否存在数组中
in_array() 判断一个值是否存在数组中
array_key_exists() 判断键是否存在数组中
数组去重
array_unique() 数组去重
获取二维数组中的值的集合
array_column() 获取二维数组中的值的集合
提取数组的键与值
array_values 提取数组的值构成一维数组
array_keys 提取数组的键构成一维数组
返回数组中的随机的键
array_rand() 返回数组中的随机的键
返回数组中值的数量
count() 返回数组中值的和
查询数组中的值
array_search() 查询数组中的值是否存在/in_array()有点相似
排序
sort() 排序有很多种,按键或值升降序
array_multisort() 多维数组排序
分割数组
array_chunk()
php7与php5的区别
php5与php7之间的区别:
1、性能提升:PHP7比PHP5.0性能提升了两倍。
2、以前的许多致命错误,现在改成抛出异常。
3、PHP 7.0比PHP5.0移除了一些老的不在支持的SAPI(服务器端应用编程端口)和扩展。
4、PHP 7.0比PHP5.0新增了空接合操作符。
5、PHP 7.0比PHP5.0新增加了结合比较运算符。
6、PHP 7.0比PHP5.0新增加了函数的返回类型声明。
7、PHP 7.0比PHP5.0新增加了标量类型声明。
8、PHP 7.0比PHP5.0新增加匿名类。
9、错误处理和64位支持
php7新特性有哪些
1、性能提升:PHP7比PHP5.6性能提升了两倍。 Improved performance: PHP 7 is up to twice as fast as PHP 5.6
2、全面一致的64位支持。 Consistent 64-bit support
3、以前的许多致命错误,现在改成抛出异常。Many fatal errors are now Exceptions
4、移除了一些老的不在支持的SAPI(服务器端应用编程端口)和扩展。Removal of old and unsupported SAPIs and extensions
5、新增了空接合操作符。The null coalescing operator (??)
6、新增加了结合比较运算符。Combined comparison Operator (=)
7、新增加了函数的返回类型声明。Return Type Declarations
8、新增加了标量类型声明。Scalar Type Declarations
9、新增加匿名类。Anonymous Classes
php7 & php8 知识点大略
php7 速度快的原因
zval定义改变
之前char int用的结构体,现在统一用联合体定义。扩充字段也是联合体
zval能保存的数据不再引用,比如bool、int,直接赋值,不需要引用计数了
hashtable结构修改
zend_array,Bucket结构更简单,内存占用更少。去掉了为了解决hash冲突,的2个双向链表。直接用连续的数组。
zend_string结构修改 从两个结构体,换成了一个结构体。存储数据使用柔性数组代替了指针。
函数服用机制
内置函数
php7新特性
增加类型声明
??双问号合并运算
= 船运算符 返回 -1 0 11
常量数组
define('sites', [
? 'Google',
? 'Runoob',
? 'Taobao'
]);
可以定义匿名类
反序列化过滤unserialize
随机数random_bytes random_int
use 可以批量导入
php8
方法参数可以跳过
可以用#注释
类的初始化属性可以不用定义
类型声明可以多种
代替switch的match表达式
运算符链式调用。不用多个if
0 == 'foobar'? 是false
jit
Opcache直接生成机器码提高性能。
Opcache会做opcode层面的优化,比如图中的俩条opcode合并为一条
PHP8的JIT目前是在Opcache之中提供的
JIT在Opcache优化之后的基础上,结合Runtime的信息再次优化,直接生成机器码
JIT不是原来Opcache优化的替代,是增强
目前PHP8只支持x86架构的CPU