PHP 7.4的新增特性(功能,弃用,速度)

PHP7.0新增功能详解 php 7.0新增的功能详解 阅读详情

PHP

下一个PHP 7里程版本PHP 7.4预计将于2019年11月28日正式发布。因此,现在该让我们深入研究一些最令人兴奋的新增功能和新功能,这些功能将使PHP更快,更可靠。 。

实际上,即使PHP 7.4显着提高了性能并提高了代码的可读性,PHP 8仍将是PHP性能的真正里程碑,因为JIT包含的建议已得到批准。

无论如何,今天我们正在经历一些我们期望的PHP 7.4最有趣的功能和更改。 因此,在阅读这篇文章之前,请确保保存以下日期:

6月6日:PHP 7.4 Alpha 1

7月18日:PHP 7.4 Beta 1 –功能冻结

11月28日:PHP 7.4 GA发布

您可以在RFC官方页面上查看功能和添加项的完整列表。


PHP 7.4发布日期:
PHP 7.4计划于2019年11月28日发布。它是下一个PHP 7次要版本,应再次提高性能并提高代码的可读性/可维护性。

PHP 7.4中的PHP有何新功能? 

在本文中,我们讨论了PHP 7.4最终版本中应在语言中添加的一些更改和功能:

  • 支持数组内解包 – 数组扩展Spread运算符
  • 箭头函数 2.0 (更加简短的闭包)
  • NULL 合并运算符
  • 弱引用
  • 协变返回和逆变参数
  • 预加载
  • 新的自定义对象序列化机制 

性能提升,数组表达式中引入 Spread 运算符…

自 PHP 5.6 起可用,参数解包是将数组和 Traversable 解包为参数列表的语法。要解压一个数组或 Traversable,必须以 …(3 点)为前缀,如下例所示:

function test(...$args) { var_dump($args); }

test(1, 2, 3);

然而 PHP 7.4 RFC 建议将此功能扩展到数组中去定义:

$arr = [...$args];

Spread 运算符的第一个好处就是性能,RPC 文档指出:

Spread 运算符应该比 array_merge 拥有更好的性能。这不仅仅是 Spread 运算符是一个语法结构,而 array_merge 是一个方法。还是在编译时,优化了高效率的常量数组

Spread 运算符的一个显着优点是它支持任何可遍历的对象,而该 array_merge 函数仅支持数组。以下是数组中参数带有 Spread 运算符的示例:

$parts = ['apple', 'pear'];

$fruits = ['banana', 'orange', ...$parts, 'watermelon'];

var_dump($fruits);

如果在 PHP 7.3 或更早版本中运行此代码,PHP 会抛出一个 Parse 错误:

Parse error: syntax error, unexpected '...' (T_ELLIPSIS), expecting ']' in /app/spread-operator.php on line 3

相反,PHP 7.4 将返回一个数组

array(5) {
[0]=>
string(6) "banana"
[1]=>
string(6) "orange"
[2]=>
string(5) "apple"
[3]=>
string(4) "pear"
[4]=>
string(10) "watermelon"
}

RFC 声明我们可以多次扩展同一个数组。此外,我们可以在数组中的任何位置使用 Spread Operator 语法,因为可以在 spread 运算符之前或之后添加常规元素。因此,以下代码将按预期工作:

$arr1 = [1, 2, 3];

$arr2 = [4, 5, 6];

$arr3 = [...$arr1, ...$arr2];

$arr4 = [...$arr1, ...$arr3, 7, 8, 9];

也可以将函数返回的数组作为参数,放到新数组中:

function buildArray(){

    return ['red', 'green', 'blue'];

}

$arr1 = [...buildArray(), 'pink', 'violet', 'yellow'];

PHP 7.4 输出以下数组:

array(6) {
[0]=>
string(3) "red"
[1]=>
string(5) "green"
[2]=>
string(4) "blue"
[3]=>
string(4) "pink"
[4]=>
string(6) "violet"
[5]=>
string(6) "yellow"
}

我们也可以使用生成器:

function generator() {

for ($i = 3; $i <= 5; $i++) {

    yield $i;

    }
}

$arr1 = [0, 1, 2, ...generator()];

但不允许通过引用传递的方式。请考虑以下示例:

$arr1 = ['red', 'green', 'blue'];

$arr2 = [...&$arr1];

如果我们尝试通过传递引用的方式,PHP 会抛出以下 Parse 错误:

Parse error: syntax error, unexpected '&' in /app/spread-operator.php on line 3

如果第一个数组的元素是通过引用存储的,那么它们也通过引用存储在第二个数组中。这是一个例子:

$arr0 = 'red';

$arr1 = [&$arr0, 'green', 'blue'];

$arr2 = ['white', ...$arr1, 'black'];

这是我们用 PHP 7.4 获得的:

array(5) {
[0]=>
string(5) "white"
[1]=>
&string(3) "red"
[2]=>
string(5) "green"
[3]=>
string(4) "blue"
[4]=>
string(5) "black"
}

箭头函数 2.0 (简短闭包)

在 PHP 中,匿名函数被认为是非常冗长且难以实现和难以维护的,RFC 建议引入更简单,更清晰的箭头函数(或简短闭包)语法,这样我们就可以简洁地编写代码。在 PHP 7.4 以前:

  function cube($n){
    return ($n * $n * $n);
  }
  $a = [1, 2, 3, 4, 5];
  $b = array_map('cube', $a);
  print_r($b);

PHP 7.4 允许使用更简洁的语法,上面的函数可以重写如下:

$a = [1, 2, 3, 4, 5];
$b = array_map(fn($n) => $n * $n * $n, $a);
print_r($b);

目前,由于语言结构,匿名函数(闭包)可以使用 use 继承父作用域中定义的变量,如下所示:

$factor = 10;
$calc = function($num) use($factor){
return $num * $factor;
};

但是在 PHP 7.4 中,父级作用域的值是通过隐式捕获的(隐式按值的作用域进行绑定)。所以我们可以用一行来完成一下这个函数

$factor = 10;
$calc = fn($num) => $num * $factor;

父级作用域定义的变量可以用于箭头函数,它跟我们使用 use 是等价的,并且不可能被父级所修改。新语法是对语言的一个很大改进,因为它允许我们构建更易读和可维护的代码。

NULL 合并运算符

由于日常使用中存在大量同时使用三元表达式和 isset () 的情况, 我们添加了 null 合并运算符 (??) 这个语法糖。如果变量存在且值不为 NULL, 它就会返回自身的值,否则返回它的第二个操作数。

  $username = $_GET['user'] ?? ‘nobody';

这段代码的作用非常简单:它获取请求参数并设置默认值(如果它不存在)。但是在 RFC 这个例子中,如果我们有更长的变量名称呢?

$this->request->data['comments']['user_id'] = $this->request->data['comments']['user_id'] ?? 'value';

长远来看,这段代码可能难以维护。因此,旨在帮助开发人员编写更直观的代码,这个 RFC 建议引入 null 合并等于运算符 (null_coalesce_equal_operator)??=,所以我们可以敲下面这段代码来替代上面的这段代码:

  $this->request->data['comments']['user_id'] ??= ‘value’;

如果左侧参数的值为 null,则使用右侧参数的值。

注意,虽然 coalesce 运算符 ?? 是一个比较运算符,但 ??= 它是赋值运算符。

类型属性 2.0

类型的声明,类型提示,以及指定确定类型的变量传递给函数或类的方法。其中类型提示是在 PHP5 的时候有的一个功能,PHP 7.2 的时候添加了 object 的数据类型。而 PHP7.4 更是增加了主类属性声明,看下面的例子:

class User {
    public int $id;
    public string $name;
}

除了 void 和 callable 外,所有的类型都支持

public int $scalarType;
protected ClassName $classType;
private ?ClassName $nullableClassType;

为什么不支持 void 和 callable?下面是 RFC 的解释

The void type is not supported, because it is not useful and has unclear semantics.
不支持 void 类型,是因为它没用,并且语义不清晰。

The callable type is not supported, because its behavior is context dependent.
不支持 callable 类型,因为其行为取决于上下文。

因此,我们可以放心使用 bool,int,float,string,array,object,iterable,self,parent,当然还有我们很少使用的 nullable 空允许 (?type)

所以你可以在 PHP7.4 中这样敲代码:

   // 静态属性的类型
  public static iterable $staticProp;
 
  // var 中声明属性
  var bool $flagl
 
  // 设置默认的值
  // 注意,只有 nullable 的类型,才能设置默认值为 null
  public string $str = "foo";
  public ?string $nullableStr = null;
 
  // 多个同类型变量的声明
  public float $x, $y;

如果我们传递不符合给定类型的变量,会发生什么?

  class User {
    public int $id;
    public string $name;
  }
 
  $user = new User;
  $user->id = 10;
  $user->name = [];
 
  // 这个会产生一个致命的错误
  Fatal error: Uncaught TypeError: Typed property User::$name must be string, array used in /app/types.php:9

弱引用

在这个 RFC 中,提议引入 WeakReference 这个类,弱引用允许编码时保留对对象的引用,该引用不会阻止对象被破坏;这对于实现类似于缓存的结构非常有用。

该提案的作者 Nikita Popov 给出的一个例子:

$object = new stdClass;
$weakRef = WeakReference::create($object);
var_dump($weakRef->get());
unset($object);
var_dump($weakRef->get());

// 第一次 var_dump
object(stdClass)#1 (0) {}

// 第二次 var_dump,当 object 被销毁的时候,并不会抛出致命错误
NULL

协变返回和逆变参数

协变和逆变
百度百科的解释

  • Invariant (不变): 包好了所有需求类型
  • Covariant (协变):类型从通用到具体
  • Contravariant (逆变): 类型从具体到通用目前,PHP 主要具有 Invariant 的参数类型,并且大多数是 Invariant 的返回类型,这就意味着当我是 T 参数类型或者返回类型时,子类也必须是 T 的参数类型或者返回类型。但是往往会需要处理一些特殊情况,比如具体的返回类型,或者通用的输入类型。而 RFC 的这个提案就提议,PHP7.4 添加协变返回和逆变参数,以下是提案给出来的例子:协变返回:
interface Factory {
  function make(): object;
}
 
class UserFactory implements Factory {
  // 将比较泛的 object 类型,具体到 User 类型
 function make(): User;
}

逆变参数:

interface Concatable {
  function concat(Iterator $input); 
}
 
class Collection implements Concatable {
  // 将比较具体的 `Iterator`参数类型,逆变成接受所有的 `iterable`类型
  function concat(iterable $input) {/* . . . */}
}

预加载

这个 RFC 是由 Dmitry Stogov 提出的,预加载是在模块初始化的时候,将库和框架加载到 OPCache 中的过程,如下图所示

引用他的原话:

On server startup – before any application code is run – we may load a certain set of PHP files into memory – and make their contents “permanently available” to all subsequent requests that will be served by that server. All the functions and classes defined in these files will be available to requests out of the box, exactly like internal entities.
服务器启动时 – 在运行任何应用程序代码之前 – 我们可以将一组 PHP 文件加载到内存中 – 并使得这些预加载的内容,在后续的所有请求中 “永久可用”。这些文件中定义的所有函数和类在请求时,就可以开箱即用,与内置函数相同。

预加载由 php.ini 的 opcache.preload 进行控制。这个参数指定在服务器启动时编译和执行的 PHP 脚本。此文件可用于预加载其他文件,或通过 opcache_compile_file() 函数

这在性能上有很大的提升,但是也有一个很明显的缺点,RFC 提出来了

preloaded files remain cached in opcache memory forever. Modification of their corresponding source files won’t have any effect without another server restart.

预加载的文件会被永久缓存在 opcache 内存中。在修改相应的源文件时,如果没有重启服务,修改就不会生效。

新的自定义对象序列化机制 

这是尼基塔·波波夫(Nikita Popov)的另一项建议 ,得到了绝大多数票的批准。

当前,我们有两种不同的机制可以在PHP中对对象进行自定义序列化:

  • __sleep()和__wakeup()魔术方法
  • 可Serializable接口

根据Nikita的说法,这两个选项都存在导致复杂且不可靠的代码的问题。 您可以在RFC中深入研究此主题。 在这里,我只提到新的序列化机制应该通过提供两个结合了两个现有机制的新魔术方法__serialize()和__unserialize()来防止这些问题。

该提案以20票对7票获得通过。

PHP7.4 又将废弃什么功能呢?

更改连接运算符的优先级

目前,在 PHP 中 + , - 算术运算符和 . 字符串运算符是左关联的, 而且它们具有相同的优先级。例如:

  echo "sum: " . $a + $b;

在 PHP 7.3 中,此代码生成以下警告:

  Warning: A non-numeric value encountered in /app/types.php on line 4

这是因为这段代码是从左往右开始的,所以等同于:

  echo ("$sum: " . $a) + $b;

针对这个问题,这个 RFC 建议更改运算符的优先级,使 . 的优先级低于 + ,- 这两个运算符,以便在字符串拼接之前始终执行加减法。所以这行代码应该等同于以下内容:

  echo "$sum: " . ($a + $b);


这个提案分为两步走:

  • 从 PHP7.4 开始,当遇见 + - 和 . 在没有指明执行优先级时,会发出一个弃用通知。
  • 而真正调整优先级的这个功能,会在 PHP8 中执行弃用左关联三元运算符在 PHP 中,三元运算符与许多其他语言不同,它是左关联的。而根据 Nikita Popof 的所说:对于在不同语言之间切换的编程人员来说,会令他们感到困扰。比如以下的例子,在 PHP 中是正确的:$b = $a == 1 ? 'one' : $a == 2 ? 'two' : $a == 3 ? 'three' : 'other';它会被解释为:$b = (($a == 1 ? 'one' : $a == 2) ? 'two' : $a == 3) ? 'three' : 'other';对于这种复杂的三元表现形式,它很有可能不是我们希望的方式去工作,容易造成错误。因此,这个 RFC 提议删除并弃用三元运算符的左关联使用,强制编程人员使用括号。这个提议分为两步执行:
  • 从 PHP7.4 开始,没有明确使用括号的嵌套三元组将抛出弃用警告。
  • 从 PHP 8.0 开始,将出现编译运行时错误。

php7.4性能

出于对PHP 7.4的Alpha预览版性能状态的好奇,我今天针对使用Git构建的PHP 7.3.6、7.2.18、7.1.29和7.0.32运行了一些快速基准测试,并且每个发行版均以相同的方式构建。

在此阶段,PHPBench的7.4性能与PHP 7.3稳定版相当,已经比PHP 7.0快了约30%…当然,与PHP 5.5的旧时代相比,收益甚至更大。

在微基准测试中,PHP 7.4的运行速度仅比PHP 7.3快一点,而PHP-8.0的性能却差不多,至少要等到JIT代码稳定下来并默认打开为止。

在Phoronix测试套件的内部PHP自基准测试中,PHP 7.4的确确实处于PHP 7.3性能水平之上-至少在此Alpha前状态下。 自PHP 7.0起,取得了一些显着的进步,而自PHP5发行缓慢以来,也取得了许多进步。

总结:PHP7.4是一个令人期待的版本,但是PHP8才是整个PHP界最重大的事情。

 

参考链接:

令人期待的 PHP7.4

https://kinsta.com/blog/php-7-4/

An Early Look At Some PHP 7.4 Performance Benchmarks

CentOS 7安装php7.4 阅读详情

相关推荐

PHP 7 新特性

PHP 7将大多数错误转换为异常,这使得错误处理更加一致和可预测。开发者可以更方便地捕获和处理错误。try {// 可能会导致错误的代码// 错误处理。

lsx202406的博客 623

php7.4编译安装,及重要的拓展库

php7.4编译安装,及重要的拓展库。

qq_39636712的博客 5460

深入理解PHP 5.4.7版本的特性与优化

PHP 5.4.7版本是PHP语言发展史中的一个重要节点,它不仅巩固了PHP作为网站开发主流语言的地位,而且带来了多项核心特性的更新和改进。此版本的发布标志着PHP社区对性能、可维护性和新特性的不断追求。在这一章节中,我们将对5.4.7版本的特性进行概述,并分析这些特性对于现代Web开发的影响。命名空间在PHP中是一种封装事物的方法,用来解决以下两个主要问题:用户编写的代码与PHP内部的类/函数/常量或用户编写的类/函数/常量之间的名字冲突。

weixin_42575505的博客 680

Window10安装PHP7.4

首先需要下载PHP 7的安装包,可以从PHP官网(https://www.php.net/downloads.php)或者Windows下的PHP官网(http://windows.php.net/download/)下载Windows版本的PHP 7安装包。根据自己的系统架构(32位或64位)选择下载,下载后解压到一个路径下。在PHP目录中找到php.ini-development文件,将其重命名为php.ini,并且进行修改。将PHP安装的路径(比如C:\php)添加到环境变量中。

南巷清风 7976

pnlitePHP开发环境

对PNLITE的封装,减少运行BAT命令。

火山引擎之火山方舟知识库+OpenWebUI,搭建独属于自己的AI智能客服

创建接入点,接入点名称可按个人需求而定,比如Doubao-1.5-pro-32k,在添加模型选择Doubao-1.5-pro-32k,点击确定(PS:有些模型不支持知识库,若发现后续无法选择,请重新创建推理接入点。选择应用广场,创建零代码应用,在创建好的应用设置内编辑相关信息,并选择推理接入点,即先前建好的推理接入点;此处的模型名称是火山的模型ID名称,可在OpenWebUI设置-模型 中修改名称。至此所需的apikey和模型ID和请求的api地址(可选配置,非本文重点参数)。进入火山官网,注册账号。

AmaZInGvCH的博客 2651

PHP 7.4简介:性能,功能,弃用

PHP evolves continuously and they just released their latest PHP 7.4 update. Performance and speed keep advancing, as we have already been proved in the past PHP 7 releases. Preloading is one of the m...

cullen2012的博客 6451

Cadence ADE实战:1GHz VCO相位噪声仿真全流程(附PSS/Pnoise避坑指南)

本文详细介绍了在Cadence ADE环境中对1GHz VCO进行相位噪声仿真的完整流程。重点剖析了PSS(周期性稳态分析)和Pnoise(周期性噪声分析)两大核心引擎的关键参数设置与避坑指南,帮助射频与模拟IC设计者准确评估VCO性能,解决仿真不收敛、结果异常等常见问题。

rock5的博客 670

PHP7.0至PHP8部分特性总结

PHP7.0特性 2015年6月11日,PHP开发团队宣布将立即提供PHP 7.0.0 Alpha1。此版本标志着PHP 7主要系列的开始。我们有许多原因,应该对PHP7.0感到兴奋,接下来让我们来看一下它全新的语言特性! 性能: PHP7.0采用下一代由PHP核心团队开发的引擎,比传统的Zend引擎快两倍甚至是三倍,同一个框架应用在 PHP 7.0 下的性能比 PHP 5.6 提高了54%,这是一个很显著的性能提升 新特性 1、)严格模式 开启方式 declare(strict_types =

weixin_42321271的博客 5468

戴尔G3/AWCC用户必看:揪出WMI Provider Host疯狂占用的元凶,附5.4.35旧版回退保姆级教程

本文针对戴尔G3/AWCC用户遇到的WMI Provider Host异常占用问题,提供了详细的诊断方法和解决方案。通过分析AWCC 5.5.14.0版本的资源占用问题,指导用户回退到稳定版AWCC 5.4.35,并附上保姆级教程和预防措施,帮助用户彻底解决系统卡顿问题。

weixin_30892037的博客 561

【机器人】线性方程最小二乘解法对机械臂DH参数进行标定

1.前言 看了一篇文章,觉得里面的DH参数标定法讲的很清晰,便使用Matlab复现了一下,效果还可以,特写此文记录。 2.原理 2.1.误差最佳值的最小二乘计算 有研究结果表明:几乎95%的机器人位置误差都是由机器人内部运动学的不准确描述引起的,所以对DH模型参数进行标定是很有必要的。 DH参数物理含义:选自《机器人学、机器视觉与控制-Matlab基础》 当DH参数确定后,我们...

要恰饭得嘛 1万+

php7 新特性

https://blog.csdn.net/u011957758/article/details/73320083 新增功能 1.类型的声明 申明变量有强制模式和严格模式,前者会转换类型(如float转int),后者会直接报错 2.新增操作符 语法:$c =$a <=> $b 如果$a >$b, $c 的值为1 如果$a ...

mistyraine的博客 230

耕地质量评价软件实操指南:如何用Excel+ArcGIS一键生成土壤普查报告(附避坑技巧)

本文提供了一套融合Excel数据处理与ArcGIS空间分析的耕地质量评价实战工作流。详细讲解了从数据规范化预处理、高效数据桥接,到在ArcGIS中实现指标评分、综合指数计算与等级划分的全流程,旨在帮助土壤普查工作者大幅提升报告生成效率与准确性,并分享了关键的避坑技巧。

weixin_28455801的博客 490

PHP7新增功能详解

PHP7新增功能详解(实例) (查看原文请点击本文末尾左下角:阅读原文) 这一篇主要是来详细分析php7.0的新增功能。 一、性能与底层 PHP7速度是 PHP5.6 的两倍 php7 最显著的变化就是性能的极大提升,已接近Facebook开发的PHP执行引擎HHVM。在WordPress基准性能测试中,速度比5.6版本要快2~3倍,大大减少了内存占用。PHP7在语...

weixin_38249353的博客 691

VSCode 配置 Claude Code 插件的 4 步安装法与 3 类常见报错解决方案

介绍 VSCode 中 Claude Code 插件的 4 步可靠安装流程与 3 类高频报错(上下文丢失、认证失败、加载卡死)的根因分析和精准修复方案,聚焦文件上下文捕获机制、请求头注入要求及缓存失效逻辑,提供可验证的命令行操作与日志定位方法。

weixin_28728443的博客 495

手把手教你从入门到精通C# Modbus通信

本文是《Modbus通信从入门到精通》的导读,本专栏将会详细介绍ModusRTU 、ModbusASCII、ModbusTCP这三种协议的C#实现,由一个高级工程师多年实战经验总结而成,绝对干货!

qq_34059233的博客 1万+

php 7.2 特性,【转帖】PHP 7.4 的新功能是什么?PHP 特性列表

在2020年初整站升级PHP7.4,不知道是CentOS、宝塔或者我服务器上其他什么软件的兼容问题,PHP7.4安装后断断续续出过几个问题导致站点挂掉。最近重新安装了PHP最新版的7.4.9。目前来看整体使用效果正常。但效率的提升并不很明显,没有感觉到速度明显变快。而phpmyadmin这款软件的4.9.0在切换到PHP7.4后会报一个奇怪的错。切回7.3后错误消失。另外,如果把PHPmyadmi...

weixin_39867200的博客 434

RK3588,V4l2 读取Gmsl相机, Rga yuv422转换rgb (dma), 实现零拷贝

RK3588, 使用V4l2 读取 gmsl 相机,获得yuv422格式图像, 使用 rga 转换 rgb 图像。减少cpu占用率. 内存管理方式采用 dma,实现零拷贝.

J。 1262

PHP7新特性 整理制作

1.类型的声明。 3.新增操作符“<=>” 4.新增操作符“??” 5.define() 定义常量数组 7.匿名函数 10.命名空间引用优化 // PHP7以前语法的写法 use FooLibrary\Bar\Baz\ClassA; use FooLibrary\Bar\Baz\ClassB; // PHP7新语法写法 use FooLibrary\Bar\Baz{ ClassA, C...

qq_24726703的博客 150

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

pear php7,PHP 7.4 新特性

PHP 7.4 预计在 2019 年年末就会正式发布了,本文先来看看一下 PHP 7.4 的新特性。1.预加载预加载的实现理论上是可以为 PHP 带来很大的性能提升的。比如说:现在传统的 PHP 框架或者项目,都是有一次请求就加载和重新编译一次文件的。预加载的实现使得我们可以直接将 PHP 文件加载到内存中,并一次来永驻内存来应对后续的请求。(跟 swoole 有点像了?)不过预加载也会带来一点机...

weixin_28994935的博客 250

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

PHP7 新增特性

一、性能与底层 php7 最显著的变化就是性能的极大提升,PHP7速度是 PHP5.6 的两倍,PHP7在语言上也有一些变化,比如添加返回类型声明、增加了一些新的保留关键字等。在安全方面,去除了PHP安全模式,添加魔术引号等。 二、新特性 1、类型声明 现在php的标量有两种模式: 强制 (默认) 和严格模式。 现在可以使用下列类型参数(无论用强制模式还是严格模式): 字符串(string), ...

样子的博客 53

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

PHP5.6与PHP7之间的区别

一、俩者的区别 1.PHP7.0比PHP5.6性能提升了俩倍。 2.PHP7.0全面一致支持64位。 3.PHP7.0之前出现的致命错误,都改成了抛出议程。 4.增加了空结合操作符(??),相当于三元运算符。 5.PHP7.0新增了函数的返回类型声明。 6.PHP7.0新增了标量类型声明。 7.PHP7中的函数的形参类型声明可以是标量。在PHP5中只可以是类名、接口、数组或者callable(PH...

独宠子沫的博客 1万+
上一篇: /etc/profile和~/.bash_profile的区别与联系
下一篇: centos7 安装最新版稳定版nodejs和npm
迷途大灰狼
博客等级 码龄10年 230粉丝 131原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值