标量类型声明

1. 分为强制模式和严格模式

2. 这些类型的函数参数可以执行声明

int, float, bool, string, interfaces, array, callable

例如:

function sum(int ...$ints){

return array_sum($ints);

}

print(sum(2,'3',4.1)); //9

如果在最头部加上代码:

declare(strict_types=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; // 改为: return $value+1.0;  则会报错

}

print(returnIntValue(5)); //5

空合并运算符(??)

$info = isset($_GET['name']) ? $_GET['name'] : 'not name';

上面那种写法, 现在可以这么写:

$info = $_GET[name'] ?? 'not name';

$info = $_GET['name'] ?? $_POST['name'] ?? 'not name';

飞船操作符

用于比较两个表达式。当第一个表达式比第二个表达式分别小于,等于或大于它返回-1,0或1

例如:

print( 1 <=> 1);print("<br/>");

print( 1 <=> 2);print("<br/>");

print( 2 <=> 1);print("<br/>");

返回:

0

-1

1

define常量数组

在php5.6中只能用const定义, 现在可以用define:

define('cats',['blue cat','white cat','black cat']);

new class 匿名类

$app->setLogger(new class{

public function log(string $msg){

print($msg);

}

});

Closure::call()

将一个闭包函数动态绑定到一个新的对象实例, 并执行该函数

class A{

private $x = 1;

}

$getX = function(){

return $this->x;

};

echo $getX->call(new A);

为unserialize()提供过滤

IntlChar类

随机数

string random_bytes (int $length)     生成伪随机字节

int random_int (int $min, int $max)   生成伪随机在整数

use语句

从同一个命名空间导入类, 函数, 常量, 而不需要多次使用use

use com\yiibai\{ClassA, ClassB, ClassC as C};

use function com\yiibai\{fn_a, fn_b, fn_c};

use const com\yiibai\{ConstA, ConstB, ConstC};

intdiv 函数

执行整数除法并返回int

$value = intdiv(10,3);

print($value); //3

session支持数组参数

session_start([

'cache_limiter' => 'private',

'read_and_close' => true,

]);

php7弃用的功能

1. 类和方法的名称相同, 不行

class A {

function A(){

...

}

}

2. 不能调用非静态方法

class A {

function b(){

...

}

}

A::b(); //错!

php7 教程的更多相关文章

  1. CentOS 6.5 安装 php7 教程 包很重要使用lnmp1.4里面的包

    ./configure \ --prefix=/usr/local/php-7.0.1 \ --with-mysql=mysqlnd \ --with-pdo-mysql=mysqlnd \ --wi ...

  2. PHP环境配置综合篇

    1.WNMP: http://www.wnmp.com.cn/     En: https://www.getwnmp.org/ 2.xampp:https://www.apachefriends.o ...

  3. Windows服务器安装配置PHP7.0环境图文教程

    摘自http://www.111cn.net/phper/linux-php/109865.htm Windows服务器安装配置PHP7.0环境图文教程 www.111cn.net 更新:2016-0 ...

  4. vagrant系列教程(三):vagrant搭建的php7环境(转)

    原文:http://blog.csdn.net/hel12he/article/details/51107236 前面已经把vagrant的基础知识已经基本过了一遍 了,相信只要按着教程来,你已经搭建 ...

  5. Ubuntu17.04配置LNMP(Nginx+PHP7+MySQL)简单教程 快速 易学 简单易懂

    我安装的是当前最新的Ubuntu版本17.04,在虚拟机中先试用一下,如果没有什么不稳定的现象,准备以后作为主力操作系统 Ubuntu属于Debian系的Linux系统,拥有着一个很NB的软件包管理器 ...

  6. PHP7+Nginx的配置与安装教程详解

    下面脚本之家小编把PHP7+Nginx的配置与安装教程分享给大家,供大家参考,本文写的不好还请见谅. 系统环境:centos6.5 x64 软件版本:nginx-1.10.0 php-7.0.6 安装 ...

  7. PHP7安装Memcache+Memcached缓存加速WordPress教程

    PHP7安装Memcache+Memcached缓存加速WordPress教程 2016年1月19日 6,691 Views 生活方式 PHP7最显著的变化就是性能的极大提升,已接近Facebook开 ...

  8. 在 Ubuntu/Debian 下安装 PHP7.3 教程

    介绍 最近的 PHP 7.3.0 已经在 2018 年12月6日 发布 GA,大家已经可以开始第一时间体验新版本了,这里先放出 PHP7.3 安装的教程以便大家升级. 适用系统: Ubuntu 18. ...

  9. ThinkPHP5在PHP7以上使用QueryList4, ThinkCMF在PHP5中使用QueryList3教程

    QueryList 是一款用于网页采集爬虫的框架,官方最新版本为QueryList4,QueryList4版本只能在PHP7以上使用: 在PHP7以上环境中,如何在ThinkPHP5中使用QueryL ...

随机推荐

  1. Linux IPC基础(System V)

    简介 IPC 主要有消息队列.信号量和共享内存3种机制.和文件一样,IPC 在使用前必须先创建,使用 ipcs 命令可以查看当前系统正在使用的 IPC 工具: 由以上可以看出,一个 IPC 至少包含 ...

  2. .net敏捷开发框架 力软(learun) 让开发变的更简单

    版本:6.1.6.2 体验地址:www.fishcmonkey.com 联系QQ:6539471

  3. Mybatis关联查询之一对多和多对一XML配置详解

    平时在开发过程中dao.bean和XML文件都是自动生成的,很少写XML的配置关系,今天记录一下mybatis的关联查询中的多对一和一对多的情况. 首先是有两张表(学生表Student和老师Teach ...

  4. ubuntu安装docker以及基本用法

    ubuntu安装docker以及基本用法 一.安装 安装前先更新apt-get源到最新版本 apt-get update 使用ubuntu自带的docker安装包安装docker apt-get in ...

  5. blfs(systemd版本)学习笔记-总页

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! lfs(systemd版本)学习笔记:https://www.cnblogs.com/renren-study-notes/p/ ...

  6. 洛谷P2447 [SDOI2010]外星千足虫(异或方程组)

    题意 题目链接 Sol 异或高斯消元的板子题. bitset优化一下,复杂度\(O(\frac{nm}{32})\) 找最优解可以考虑高斯消元的过程,因为异或的特殊性质,每次向下找的时候找到第一个1然 ...

  7. 【代码笔记】Web-HTML-表格

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  8. vue-cli脚手架目录一览

    最近在学习vue,看的稀里糊涂.今天从头开始,把cli配置的vue项目目录和配置文件搞清楚. 先看看整个项目目录结构: 再看看build文件夹下相关文件及目录: config文件夹下目录和文件: 接下 ...

  9. Fragment 中 ListView绑定ContextMenu

    package com.example.administrator.imbobo.controller.fragment; import android.content.BroadcastReceiv ...

  10. 【Java入门提高篇】Day31 Java容器类详解(十三)TreeSet详解

    上一篇很水的介绍完了TreeMap,这一篇来看看更水的TreeSet. 本文将从以下几个角度进行展开: 1.TreeSet简介和使用栗子 2.TreeSet源码分析 本篇大约需食用10分钟,各位看官请 ...