在进行Web应用程序开发的时候,人们经常会用Session存储数据。但可能有人不知道,在PHP中,Session使用不当可能会引起并发问题。印度医疗行业软件解决方案提供商Plus91 Technologies高级工程师Kishan Gor在个人博客上对这个问题进行了阐释。 如果同一个客户端并发发送多个请求,而每个请求都使用了Session,那么PHP Session锁的存在会导致服务器串行响应这些请求,而不是并行。这是因为在默认情况下,PHP使用文件存储Session数据。对于每一个新的 Session,PHP会创建一个文件,并持续向其中写入数据。所以,每次调用session_start()方法,就会打开Session文件,并取得 文件的独占锁。这样,如果服务器脚本正在处理一个请求,而客户端又发送了一个同样需要使用Session的请求,那么后一个请求会阻塞,直至前一个请求处 理完成释放了文件上的独占锁。不过,这只限于来自同一个客户端的多个请求,也就是说,来自一个客户端的请求并不会阻塞另一个客户端的请求。 如果脚本很短,这通常没有问题。但如果脚本运行时间比较长,那就可能会产生问题。在现代Web应用程序开发中,有一个非常常见的情况,就是使用…
PHP 7.3 提供的高级功能, Elite Features That PHP 7.3 Offers

PHP团队向业内的PHP开发人员提供了一种新的PHP 7.3语言的圣诞礼物,给人以愉悦的感觉。这个新版本的时间表已经安排和部署了很多次,但是这个版本值得等待。它涵盖了将促进PHP开发的所有增强功能和功能列表。
值得探讨影响PHP开发的全新特性。赋予变更的主要领域是语法,弃用,新功能包含和其他杂项更改。您可以聘请专门的PHP开发人员USA,享受您的应用程序的新外观。
这个版本的一个主要改进是支持外部函数接口(FFI),它允许PHP程序员甚至在PHP脚本内部用C编写代码。根据Phoronix的说法,PHP 7.3的最后一个候选版本将带来近10%的性能提升,比7.0快31%。让我们更深入地探讨有助于开发人员编写更好代码的细微差别。
Heredoc和Nowdoc语法的实现
它有助于为电子邮件网站创建多行文本,SQL查询和HTML片段,而无需使用换行符。Heredoc是一个提出2个新变化的更新:
- 关闭标记;
- 关闭标记后删除新行要求。
新的变化引起了许多人的注意,因为早期的代码看起来很难看,但这会使代码看起来更优雅,更容易理解。早期版本代码如下所示:
print <<<EOT Heredoc text behaves just like a double-quoted string, without the double quotes. EOT;
新代码如下所示:
JSON_THROW_ON_ERROR
开发人员长期以来面临的主要问题是充分处理错误。只有两个函数json_encode()和json_decode()可用于解析响应。Json_encode()仅抛出false错误,json_decode()抛出null。知道错误的最终方法是调用json_last_error()或json_last_error_msg(),它只返回全局错误状态。
23-0投票显示要求这个功能有多重要。我们来看一个例子:
json_decode("{"); json_last_error() === JSON_ERROR_NONE // the result is false json_last_error_msg() // The result is "Syntax error"
它只显示代码有错误,但在哪里?问题是否仍然存在。随着新的标志JSON_THROW_ON_ERROR
,代码变为:
新的更新代码如下所示:
本文: PHP 7.3 提供的高级功能, Elite Features That PHP 7.3 Offers