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

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,2,31]  等于 [$a,$b,$

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值