PHP7新特性、运行模式和生命周期

本文详细介绍了PHP7的新特性,包括太空船操作符、类型声名、null合并操作符等,并讲解了PHP的运行原理,如四种运行模式:CGI、FAST-CGI、CLI和模块模式。特别地,文章深入探讨了FAST-CGI模式的工作流程,以及PHP-FPM的管理机制和三种模式。此外,还分析了PHP的生命周期、SAPI、CLI模式和FPM模式的生命周期,帮助读者全面理解PHP的运行机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、PHP目录

    PHP源码核心目录 Zend文件下,spai放在sapi的文件下,一些扩展的方法和库函数在ext文件下

    编译的脚本是在configure目录下,接下来make进行编译,make install 会把相关的二进制文件拷贝到我指定的目录下

 ./configure  --prefix=/usr/tmp/php/php-7.1.0  --enable-fpm --enable-debug

 2、PHP7新特性:

  太空船操作符:用于比较2个表达式,例如当a小于,等于或大于a小于,等于或大于b时,分别返回-1,0,1

 echo 1 <=> 1; //0 echo PHP_EOL; echo 1 <=> 2; //-1 echo PHP_EOL; echo 2 <=> 1; //1

  类型声名:declare(strict_types=1);//strict_types=1表示开启严格模式

declare(strict_types=1); //strict_types=1表示严格模式
function sum(int ...$ints){
    return array_sum($ints);
}
var_dump(sum(1,'2','3.1',4.1));

执行结果
Fatal error: Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, string given

  null合并操作符: $page=isset($_GET['page'])?$_GET['page']:0;  等于 $page=$_GET['page']??0;

 常量数组: define('ANIMALS',['dog','cat']);

 批量导入: use Space\{Class A,ClassB,Class as C};

 throwable接口

try{
  undefindfunc();
}catch(Error $e){
var_dump($e);
}
//可以捕获没有定义函数的这个错误

 Clousure:call()   

//在php7可通过call来暂时绑定一个闭包对象到$this对象并调用它
class Test{
 private $num=1;
}
$f=function(){
 return $this->num+1;
}
echo $f->call(new Test);

//在php7之前,当动态的给一个对象添加方法时,可以通过Closure来复制一个闭包对象,并绑定到一个$this对象和类作用域

class People{
    private $age=10;
}
$f=function(){
    return $this->age+1;
};

$p=$f->bindTo(new People,'People');
echo $p();

intdiv函数: intdiv(10,3) //10除以三取整数

list的方括号写法:list($a,$b,$c)=$arr[1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值