zoukankan      html  css  js  c++  java
  • php7新内容总结(随时更新)

    一.参数和返回值类型申明

    可以申明的有:float,int,bool,string,interfaces,array,callable

    一般模式:
    function sum(int ...$ints) {
    return array_sum($ints);
    }
    print(sum(2, '3', 4.1)); //9
    严格模式:
    declare(strict_types=1);
    function sum(int ...$ints) {
    return array_sum($ints);
    }
    print(sum(2, '3', 4.1)); //Fatal error: Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, string given, ...
      
    返回值:
    declare(strict_types = 1);
    function returnIntValue(int $value): int {
    return $value + 1.0;
    }
    print(returnIntValue(5));//Fatal error: Uncaught TypeError: Return value of returnIntValue() must be of the type integer, float returned.

    二.空合并运算符
    isset($_GET['aa']) ? $_GET['aa'] : 'not passed'等价于$_GET['aa']??'not passed';

    三.飞船运算符
    print( 1 <=> 1);//0
    print( 1 <=> 2);//-1
    print( 2 <=> 1);//1

    四.定义数组常亮
    define('animals', [ 'a', 'b', 'c']);

    五.过滤unserialize
    PHP 7引入了过滤的unserialize()函数,以便在对不可信数据上的对象进行反序列化时提供更好的安全性。它可以防止可能的代码注入,并使开发人员能够对可以反序列化的类进行白名单。

    六.use 批量声明
    在同一个命名空间下,现在use可以批量申明
    use some/namespace/{ClassA, ClassB, ClassC as C};

    七.支持为负的字符串偏移量
    var_dump('abcdef'[-2]);
    var_dump(strpos("aabbcc", "b", -3));

    八.foreach不再改变内部数组指针
    $arr = [0,1,2];
    foreach($array as $val){
      var_dump(current($array));
    }
    php5 输出:int(1) int(2) bool(false)
    php7 输出:int(0) int(0) int(0)

  • 相关阅读:
    js相关禁止
    单例模式 俗称单例3步曲+1曲
    轮廓线重建:二维平行轮廓线重建理论和方法
    一种面向三维地质剖面的形体表面重构算法
    在不使用gluSphere()的情况下在OpenGL中绘制Sphere
    Balabolka
    jQuery学习笔记之可见性过滤选择器
    Flask学习之四 数据库
    Flask学习之三 web表单
    Flask学习之二 模板
  • 原文地址:https://www.cnblogs.com/crazytata/p/9318838.html
Copyright © 2011-2022 走看看