php多线程通信 为什么PHP不适合于比小型业余网站更大的网站?

四年来,作者一直致力于PHP应用程序的开发。PHP 真的很容易写。但是PHP也有一些非常严重的缺陷。

下面我会给出我自己的原因,为什么PHP不适合比小型业余网站更大的网站。

1. 对递归的支持不佳

递归是函数调用自身的一种机制。这是一个强大的功能,可以让一些复杂的事情变得非常简单。使用递归的一个例子是 ()。不幸的是,PHP 并不擅长递归。PHP 开发者 Zeev 表示:“PHP 4.0 (Zend) 对稠密数据使用堆栈方法而不是堆方法。也就是说,它可以容忍的递归函数数量的限制是可比的到其他语言。显然更少。” 参见 bug 1901。这是一个非常糟糕的借口。每种编程语言都应该提供良好的递归支持。

2. 许多 PHP 模块不是线程安全的

几年前,发布了 Web 服务器的版本 0。该版本支持多线程模式php多线程通信,在这种模式下,软件的一个部分可以同时运行多个。PHP的发明者说,PHP的核心是线程安全的,但非核心模块不一定。但是十分之九,您希望在您的 PHP 脚本中使用这种模块,但这使您的脚本不适合多线程。这就是 PHP 团队不建议在 2 多线程模式下运行 PHP 的原因。糟糕的多线程模式支持使得 PHP 经常被引用为 2 仍然不流行的原因之一。

请阅读此讨论:: Sites 2?。

3. PHP 由于商业原因不健全

图片[1]-php多线程通信 为什么PHP不适合于比小型业余网站更大的网站?-4747i站长资讯

通过使用缓存,PHP 的性能可以显着提高 500% [参见基准测试]。那么为什么缓存没有内置到 PHP 中呢?因为PHP的制造商Zend在销售自己的Zend,所以他们当然不想放弃自己商业产品的肥肉。

但还有另一种选择:APC。(Zend 后来推出了 Zend,一个免费的加速器翻译器)

4. 没有命名空间

想象一下有人制作了一个 PHP 模块来读取文件。模块中的一个函数称为读取。然后另一个人的模块可以读取网页,其中也包含一个函数read。那么我们就不能同时使用这两个模块了,因为PHP不知道你要使用哪个函数。

但是有一个非常简单的解决方案,那就是命名空间。有人曾经建议将这个特性添加到 PHP5 中,但不幸的是。现在,没有命名空间,每个函数都必须以模块名称为前缀,以避免名称冲突。这会导致非常长的函数名称,例如使代码难以编写和理解。

5. 非标准日期格式字符

许多程序员都熟悉日期格式字符,这些字符源自 UNIX 和 C 语言。其他一些编程语言也采用了这个标准php多线程通信,但奇怪的是,PHP 有自己的一套完全不兼容的日期格式字符。在 C 中,“%j”表示一年中的第几天,在 PHP 中表示一个月中的第几天。但更让人困惑的是:(一个非常流行的PHP模板引擎)函数和函数,却使用了C/UNIX格式化字符。

文章来源:https://www.pconline.com.cn/pcedu/empolder/wz/php/0607/818201.html

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享