zoukankan      html  css  js  c++  java
  • PHP7新功能及语法变化总结

    1、标量类型声明
    有两种模式: 强制 (默认) 和 严格模式。 现在可以使用下列类型参数(无论用强制模式还是严格模式): 字符串(string), 整数 (int), 浮点数 (float), 以及布尔值 (bool)。
    2、返回值类型声明
    返回类型声明指明了函数返回值的类型。可用的类型与参数声明中可用的类型相同。

    <?php
    function arraysSum(array []):array{
    return array_map(function(array $array): int {
    return array_sum($array);
    }, $arrays);
    
    }
    print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));
    ?>

    3、null合并运算符

    项目中存在大量同时使用三元表达式和 isset()的情况,新增了null合并运算符 (??) 这个语法(如果变量存在且值不为NULL, 它就会返回自身的值,否则返回第二个操作数。)
    4、太空船操作符(组合比较符)
    太空船操作符用于比较两个表达式。当$a小于、等于或大于$b时它分别返回-1、0或1

    <?php
    // Integers
    echo 1 <=> 1; // 0
    echo 1 <=> 2; // -1
    echo 2 <=> 1; // 1
    
    // Floats
    echo 1.5 <=> 1.5; // 0
    echo 1.5 <=> 2.5; // -1
    echo 2.5 <=> 1.5; // 1
    
    // Strings
    echo "a" <=> "a"; // 0
    echo "a" <=> "b"; // -1
    echo "b" <=> "a"; // 1
    ?>

    5、通过define()定义常量数组

    <?php
    define('ANIMALS', ['dog', 'cat', 'bird']);
    echo ANIMALS[1]; // outputs "cat"
    ?>

    6、匿名类

    现在支持通过new class 来实例化一个匿名类

    <?php
    
    interface Logger {
    public function log(string $msg);
    }
    
    class Application {
    private $logger;
    public function getLogger(): Logger {
    return $this->logger;
    }
    
    public function setLogger(Logger $logger) {
    $this->logger = $logger;
    }
    }
    
    $app = new Application;
    $app->setLogger(new class implements Logger {
    public function log(string $msg) {
    echo $msg;
    }
    });
    
    var_dump($app->getLogger());
    ?>

    7、Unicode codepoint 转译语法

    这接受一个以16进制形式的 Unicode codepoint,并打印出一个双引号或heredoc包围的 UTF-8 编码格式的字符串。 可以接受任何有效的 codepoint,并且开头的 0 是可以省略的。

    ……待续

  • 相关阅读:
    将博客搬至CSDN
    神州笔记本电脑【K670D】安装 Ubuntu18.04 系列操作
    ValueError: Unknown label type: 'continuous'
    Spark: JAVA_HOME is not set
    IDEA 搭建 Spark 源码 (Ubuntu)
    XX-Net 解决IPV6 不稳定,时好时坏。
    解决SBT下载慢,dump project structure from sbt?
    pip install kaggle 出现 【网络不可达】?
    Git clone 克隆Github上的仓库,速度慢?
    进程间的通信方式
  • 原文地址:https://www.cnblogs.com/yudis/p/5609069.html
Copyright © 2011-2022 走看看