(实用篇)PHP7.0新特性

1.标量参数类型声明

现在支持字符串(string)、整型(int)、浮点数(float)、及布尔型(bool)参数声明,以前只支持类名、接口、数组及Callable

两种风格:强制转换模式(默认)与严格模式

<?php
// Coercive mode
function sumOfInts(int ...$ints)
{
    return array_sum($ints);
}

var_dump(sumOfInts(2, '3', 4.1));

2.返回类型声明

<?php
function arraysSum(array ...$arrays): 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.??运算符

?? 用于替代需要isset的场合,这是一个语法糖。

<?php
// Fetches the value of $_GET['user'] and returns 'nobody'
// if it does not exist.
$username = $_GET['user'] ?? 'nobody';
// This is equivalent to:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

// Coalescing can be chained: this will return the first
// defined value out of $_GET['user'], $_POST['user'], and
// 'nobody'.
$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';

4.<=> 比较运算符

就是看两个表达式值的大小,三种关系: = 返回0、< 返回-1、 > 返回 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 5.6已经支持CONST 语法定义数组类的常量,PHP7中支持define语法。

<?php
define('ANIMALS', [
    'dog',
    'cat',
    'bird'
]);

echo ANIMALS[1]; // outputs "cat"

6.匿名类

<?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());

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/1433.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
重蔚的头像重蔚管理团队
上一篇 2016年10月25日 10:26
下一篇 2016年10月26日 08:25

相关推荐

  • 重蔚php学习第三十四天——php数组相关算法

    冒泡排序 快速查找 二分查找(折半查找) 1-----100 50 小了 50---100    75 大了 1------50     25 75 小了 75----100    87 大了 50-----75     62   前提:必须是个有序数组 最后一个快速排序... ...就不写…

    2017年10月10日 PHP自学教程
    0272
  • 谨记PHP编程效率的20个要点

    用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则 不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言…

    2017年9月27日
    0203
  • PHP商城开发中的集成与部署

    随着电商行业的快速发展,越来越多的企业开始关注自身在电商领域的布局与发展。而作为电商网站的核心技术之一,PHP商城开发的集成与部署也逐渐成为了企业关注的焦点。本文将从技术层面讲述PHP商城开发中的集成与部…

    2023年5月19日
    06
  • 浅谈PHP中断言函数的用法

    本篇文章带大家了解PHP中断言函数的使用方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。原来一直以为断言相关的函数是 PHPUnit 这些单元测试组件提供的,在阅读手册后才发现,这个 assert…

    2023年3月29日
    02
  • 我来分享PHP header跳转页面怎么设置。

    您可以使用PHP的header()函数来设置页面跳转。以下是一个简单的示例:header(“Location: http://www.example.com/”); ,,请注意,使用header()函数时,需要在调用它之前没有任何输出。 PHP header跳转…

    2024年7月10日
    03
  • php基本环境

    运行环境 保证能够运行php: 测试:echo “abc”; 保证时区设置正确: 测试:echo date(“Y-m-d H:i:s”); 保证模块设置正确: 测试:mysql_connect(“localhost”, ‘root’, ‘123’); 语法环境 有多种嵌入到html代码中的ph…

    2017年10月31日
    0184
  • 浅谈PHP中获取命令行参数的方法

    在PHP CLI 命令行中,有需要像网页的 GET 、 POST 一样为命令行脚本提供参数;那么如何获取这些命令行的参数呢?下面本篇文章就来带大家了解一下PHP中获取命令行参数的方法,介绍一下$argv变量和getopt()函数。$arg…

    2023年3月29日
    01
  • 使用PHP操作Elasticsearch数据库。

    随着大数据时代的到来,很多企业开始选择使用Elasticsearch数据库来存放和索引海量数据。而PHP是一个广泛使用的Web开发语言,因此,了解如何使用PHP操作Elasticsearch数据库将会大有裨益。安装Elasticsearch和PHP扩…

    2023年5月21日
    010

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息