本文概述
- Heredoc和Nowdoc语法的实现
- JSON_THROW_ON_ERROR
- is_countable
- array_key_first(), array_key_last()
- 不区分大小写的常量
- image2wbmp()
值得经历将影响PHP开发的全新特性。进行更改的主要区域是语法, 弃用, 包含新功能和其他杂项更改。你可以聘请专门的PHP开发人员USA并享受应用程序的新外观。
此版本的主要改进之一是对外部功能接口(FFI)的支持, 该功能允许PHP程序员甚至在PHP脚本内部也可以用C编写代码。根据Phoronix的说法, 最新的PHP 7.3候选版本将使性能提高近10%, 比7.0快31%。让我们进一步探讨有助于开发人员编写更好代码的细微差别。
Heredoc和Nowdoc语法的实现它有助于在不使用换行符的情况下为电子邮件网站创建多行文本, SQL查询和HTML代码段。 Heredoc是一项更新, 提出了2个新更改:
- 用于标识的闭合标记;
- 在结束标记后删除新的行要求。
print <
<
<
EOTHeredoc text behaves just like a double-quoted string, without the double quotes.EOT;
新代码如下所示:
print <
<
<
'EOT'Nowdocs are to single-quoted strings what heredocs are to double-quoted strings.EOT;
JSON_THROW_ON_ERROR开发人员长期使用PHP面临的主要问题是如何充分处理错误。只有两个函数json_encode()和json_decode()可用于解析响应。 Json_encode()仅引发错误错误, 而json_decode()则引发null。知道错误的最终方法是调用json_last_error()或json_last_error_msg(), 它们仅返回全局错误状态。
23-0投票要求了此功能, 这表明拥有此功能有多重要。让我们看一个例子:
json_decode("{");
json_last_error() === JSON_ERROR_NONE // the result is falsejson_last_error_msg() // The result is "Syntax error"
它仅显示代码有错误, 但是在哪里?问题仍然存在, 使用JSON_THROW_ON_ERROR的新标志, 代码将变为:
use JsonException;
try {$json = json_encode("{", JSON_THROW_ON_ERROR);
return base64_encode($json);
} catch (JsonException $e) {throw new EncryptException('Could not encrypt the data.', 0, $e);
}
这确实有助于开发人员了解代码中的问题实际发生的位置。
is_countable使用早期版本的PHP, 很难计算不可数的对象。它发出警告。代码中的可计数元素可能会有所不同, 它可以是数组格式的变量, 也可以是其类实现Countable接口的对象。
新版本引入了is_countable函数, 如果给定值是数组类型1, 则该函数返回true。
if (is_array($foo) || $foo instanceof Countable) {// $foo is countable}
新的更新代码如下所示:
if (is_countable($foo)) {// $foo is countable}
代码看起来不流畅并且容易记住吗?你甚至可以在三元条件运算符中使用此函数。
array_key_first(), array_key_last()最新的PHP版本具有75个内置函数, 属于数组类别。以前, 如果我们要检索数组的第一个或最后一个键, 则必须先获取所有键, 然后再获取第一个或最后一个值。通过使用end()或reset(), 是获取密钥的另一种方法。新版本提议引入四种新方法, 即:
- array_key_first()
- array_key_last()
- array_value_first()
- array_value_last()
// usage of an associative array$array = ['a' =>
1, 'b' =>
2, 'c' =>
3];
$firstKey = array_key_first($array);
$lastKey = array_key_last($array);
assert($firstKey === 'a');
assert($lastKey === 'c');
// usage of a numeric array$array = [1 =>
'a', 2 =>
'b', 3 =>
'c'];
$firstKey = array_key_first($array);
$lastKey = array_key_last($array);
assert($firstKey === 1);
assert($lastKey === 3);
其他一些新引入的功能包括:
- 在函数调用中允许逗号结尾;
- List()参考分配;
- Json与WordPress轻松通信;
- 相同的站点cookie。
不区分大小写的常量不区分大小写的内容使用起来有些复杂。 PHP 7.3不建议使用第三个参数值调用define()。它还不建议使用大小写不敏感的常量, 该常量的大小写与声明位置不同。在此不考虑诸如true, false和null之类的常量。
image2wbmp()函数image2wbmp()返回WBMP或位图格式。另一个函数imagewbmp()应该处理所需的单色转换。这导致函数的重复, 因此image2wbmp()在新版本中被删除。如果错误使用, 将给出不建议使用的警告或引发致命错误。其他已删除的功能是:
- 未记录的mbstring函数别名;
- 带整数针的字符串搜索功能;
- fgetss()函数和string.strip_stags流过滤器
你可以检查当前的PHP版本。开发人员可以从官方网站获取新版本。在这里你还将获得有关所有内容的详细信息。我们列出了一些有关PHP 7.3的显式功能, 现在轮到你利用这些优势了。
推荐阅读
- 如何确定数字在C中是否强
- 如何解决C#异常(必须先将当前线程设置为单线程单元(STA)模式,然后才能进行OLE调用,请确保你的Main函数已在其上标记了STAThreadAttribute)
- 如何在Symfony 4中将Twig Extension注册为不带自动接线的服务
- 如何在Symfony 4中使用服务检索项目的根目录和其他容器参数
- 前端开发人员可以通过这些技巧来帮助避免倦怠
- 如何解决(解决方案)Google的Blockly Future Programmers Game(Bird Level)
- sync-diff数据比对工具
- 一文搞懂linux进程
- docker容器网络配置