标签:php libxml2 30 特性 7.2 编译 php7 安装 page
一、下载php 安装版本
这里我下载了两个版本 php-5.6.39.tar.gz php-7.2.30.tar.gz
主要用于测试两个不同php版本区别
二、php编译安装
- 如果系统是基于docker的ubuntu生成的容器,因为是简约版,需要安装gcc相关组件,所以需要执行指令:
apt-get install build-essential
- 问题:源码安装php时出现configure: error: xml2-config not found. Please check your libxml2 installation
安装libxml2指令如:1)
apt-get install libxml2-dev
2)apt-get install libxml2
3)dpkg -s libxml2-dev
查看安装情况
- 编译:
./configure --prefix=/usr/local/php/php-56 --enable-fpm --enable-debug
prefix为安装目录 - 安装:
make && make install
三、php不同版本性能测试
- 测试脚本路径: /opt/php/php-7.2.30/Zend/bench.php /opt/php/php-7.2.30/Zend/micro_bench.php
php5.6版本 /usr/local/php/php56/bin/php /opt/php/php-7.2.30/Zend/bench.php
php7.2版本 /usr/local/php/php72/bin/php /opt/php/php-7.2.30/Zend/bench.php
通过对比,PHP7.2版本明显比php5.6的速度快差不多3倍
四、php7的新特性
1.太空船操作符 <=>
作用:用于比较两个表达式
例如:当$a小于、等于、大于$b时它分别返回-1、0、1
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
2.类型声明
- declare(strict_types=1); // strict_types=1 表述开启严格模式
function sumInts(int ...$ints):int{
return array_sum($ints);
}
3.null合并操作符
- 三目运算符: $page = isset($_GET['page']) ? $_GET['page'] : 0;
- 合并操作符: $page = $_GET['page'] ?? 0;
4.常量数组
- define('ANIMALS',['dog','cat'])
5.NameSpace批量导入
- use Space{ClassA, ClassB, ClassC as C};
6.throwable接口
try{
undefindfunc();
}catch(Error $e){
var_dump($e)
}
set_exception_handler(function($e){
var_dump($e);
});
7.Closure::call()
class Test{
private $num = 1;
}
$f = function(){
return $this->num + 1;
};
echo $f->call(new Test);
8.intdiv 函数
接收两个参数,返回值为第一个参数除于第二个参数的值并取整
intdiv(10,3);
9.list的方括号写法
$arr = [1,2,3];
list($a,$b,$c) = $arr;
# 可写为
[$a,$b,$c] = $arr;
标签:php,libxml2,30,特性,7.2,编译,php7,安装,page 来源: https://www.cnblogs.com/panjm/p/14443756.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。