首页 php教程 php手册 PHP 的八卦两则

PHP 的八卦两则

Jun 21, 2016 am 08:56 AM
php

PHP5.3 的正式发布,又重新关注起其语言本身。细心的朋友可能发现,PHP5.3 增加了 goto 语句,这在结构化语言今天似乎是有点不可思议的事情。

按照官方的说法,其实这和我们传统理解的 goto 还是有所差别。PHP 5.3 中的 goto 语句只能在脚本文件以及上下文中跳转,因此它无法从某函数或方法跳到其他的函数或者方法 -- 这不得不让我怀疑是否是“妥协”的结果。

看来 PHP 语言的设计者对 goto 语句应用是方便从从多重循环体中跳出(在其文档中的例子也说明了这点)。但其实这功能的本身也引发了不少的争议,个人也隐约的闻到了潘多拉身上的香水味。

其实“好事者”早在 2007 年就开始“期待”这项“新功能”,相信他现在会很开心。不过有趣的是这篇文章的留言给原作者泼了盆冷水。的确,goto 语句所能完成的功能,其实善用 switch 也能做到,而且更有可读性。

不过不管怎么样,语言本身仅仅是工具而已。从程序的本身角度考虑(不仅仅是 PHP),如果有过多的循环等的语块嵌套,那就说明这段代码必须需要优化了。到底应不应该使用 goto 语句,其实本人和其他的 PHP 人员也有过讨论。

最终,大家较为统一的观点就是,避免使用。

“PHP 的 10 宗罪”

老外较起真来真的非常让人受不了,这不又有好事者总结了 PHP 语言本身语法的 “10 宗罪”。其实,我个人这与其称为“Mistake”,还说是 PHP 提供的“美丽的陷阱”。

例如,文中提到的有关单引号和双引号的变量转义问题。其实这一争论的声音从学 PHP 起就在耳畔充斥。甚至记得当年还有道经典的面试题,就是考单引号和双引号的的速度孰快 -- 回过头来看,这论点就犹如此道面试题一样,是没有任何的意义的。

但这不代表文中的些“Mistake”都可以当作笑谈,有些是的确需要注意的。例如

以下为引用的内容:

$i = 0;
while($i     //some code here
    $i++;
}

这样的写法。对应的其实还有 for 语句,我们可能“手残”多写了个分号(不要不承认),那么就只能祈祷 set_time_limit 的数字小些了。

文中指出的其他些问题,也是我们需要纳入思考的范围中,例如数据库存取的缓存问题。为何 PHP 为何至今没有数据池这样的概念,其实这需要从 PHP 这门语言本身的设计哲学出发了。从此问题其实可以引申争为何 PHP 没有走向 Java 的套路,好吧这问题又可以争论一番了。

文中还有其他类似的条目,都非常的具有争议(也许搞不好这就是作者的初衷),但无论怎么说,其提出的几个问题都是值得我们去思考的。

深夜杂谈随想,乱语之处众位见笑了,欢迎发表您的看法。



本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 日期和时间 CakePHP 日期和时间 Sep 10, 2024 pm 05:27 PM

为了在 cakephp4 中处理日期和时间,我们将使用可用的 FrozenTime 类。

讨论 CakePHP 讨论 CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

CakePHP 文件上传 CakePHP 文件上传 Sep 10, 2024 pm 05:27 PM

为了进行文件上传,我们将使用表单助手。这是文件上传的示例。

CakePHP 创建验证器 CakePHP 创建验证器 Sep 10, 2024 pm 05:26 PM

可以通过在控制器中添加以下两行来创建验证器。

CakePHP 日志记录 CakePHP 日志记录 Sep 10, 2024 pm 05:26 PM

登录 CakePHP 是一项非常简单的任务。您只需使用一项功能即可。您可以记录任何后台进程(如 cronjob)的错误、异常、用户活动、用户采取的操作。在 CakePHP 中记录数据很容易。提供了 log() 函数

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 是一个开源MVC 框架。它使开发、部署和维护应用程序变得更加容易。 CakePHP 有许多库可以减少大多数常见任务的过载。

See all articles