1.作为世界上最好的语言——PHP 到底好在哪
2.phpåpythonåºå«
作为世界上最好的语言——PHP 到底好在哪
年月日,PHP 8.0.0 正式版发布,标志着PHP走过了年的历程。作者使用PHP已有7年,关于“PHP是世界上最好的语言”这一说法,既有赞誉也有戏谑,.net 考试系统 源码那么PHP究竟好在哪呢?
先来明确PHP的历史。
我接触过C++, Java, PHP, Javascript, Python, Go等多种语言,虽然不能称得上精通,但多少有些了解。今天,我主要聊聊PHP。
通过以下表格我们可以看出,论文源码抽检PHP是一门历史悠久的语言,与Java同属一个年代。C++和Java的版本号较高,这反映了开发者对它们的热情和投入。PHP的表现相对稳健,在年初发布了v8版本。PHP的广泛使用催生了HHVM等类PHP语法的虚拟机和能运行PHP的jvm。此外,为了弥补性能短板,还诞生了Opcache、Phalcon、swoole等PHP拓展。文件交换源码可以说,PHP的生态系统是多样化的。
在语言排行榜上,我们可以看到:
排行榜参考:HashMap
PHP的“万物皆是HashMap”的特点。在编码过程中,为了保存不同实体、对象,会用到数组、列表、对象、字典等。在PHP的皇朝源码阁底层实现中,这些都可以使用php array来实现。phper不需要思考使用哪种数据结构,只需使用php array即可,这大大降低了心智负担,降低了学习门槛。与Java相比,PHP的学习曲线更为平滑,当需要深入时,查看array相关的函数会有新的理解。
透过PHP的源码,我们可以看到array、k-v array、交友源码平台class等底层都是HashTable。这样的内存管理可能有些粗放,但使得PHP的底层数据结构显得单一简洁。相较于Python、Node等脚本语言,PHP在v7版本才引入了Set、Map、Queue等数据结构。PHP的array就像瑞士军刀,是其他语言所缺少的特性,这也是许多phper钟爱PHP的原因之一。
在调试php-fpm程序时,修改代码后刷新页面就能看到效果。这种简单直观的调试体验是PHP独有的,与编译性语言C/C++、Java相比,PHP的在线调试效率更高。
热部署是运维概念。对于线上PHP服务,只需将代码复制粘贴到服务器即可完成更新。这种部署体验简单,任何实习运维都能轻松完成。对于Java、Node、Python等语言,普通运维需要代码打包、上传、重启服务,这增加了工作成本。
当然,这一切都有代价。php-fpm的热部署建立在重复编译之上。随着计算机性能的提高,编译时间不再是瓶颈。DB、IO才是耗时大户。如果真的要避免重复编译问题,可以使用php-cli模式,但调试的第一感觉就是慢。
php-fpm框架在处理请求时会经过compiler、init、dispatch、controller等流程,而php-cli框架则简化了这些流程。
PHP底层是用C编写的,可以说,学习了C之后,学习PHP会更容易。这也是PHP在国内如此受欢迎的原因之一。
对于PHP开发者来说,配置一套PHP开发环境非常快,配合Windows,双击exe,一路点点点就能完成。相比之下,Java、C#等语言的配置更为复杂,可能会让入门者望而却步。
PHP的热部署特点、自动fork子进程处理请求等特性,使得PHP在Serverless领域有着广泛的应用。
PHP将字符串拼接与算数加法运算符区分开来,避免了弱类型语言常见的问题。
总结来说,PHP的学习曲线平坦,语法简单,数据结构单一,降低了使用者心智负担。PHP确实是我心中最好的语言。
phpåpythonåºå«
ãPHPåPythonçåºå«ä¹ä¸ï¼å®ä¹ä¸åã
ããPHPæ¯ä¸ç§éç¨å¼æºèæ¬è¯è¨ï¼è¯æ³æ··åäºCãJavaãPerl以åPHPèªåçè¯æ³ï¼å æ¤å©äºå¦ä¹ ï¼ä½¿ç¨å¹¿æ³ï¼ä¸»è¦éç¨äºWebå¼åé¢åãPHPè¿å¯ä»¥æ§è¡ç¼è¯å代ç ï¼ç¼è¯å¯ä»¥è¾¾å°å å¯åä¼å代ç è¿è¡ï¼ä½¿ä»£ç è¿è¡æ´å¿«ã
ããPythonæ¯ä¸ç§é¢å对象ç解éå计ç®æºç¨åºè®¾è®¡è¯è¨ï¼è¯æ³ç®æ´æ¸ æ°ï¼ç¹è²ä¹ä¸æ¯å¼ºå¶ç¨ç©ºç½ç¬¦(white space)ä½ä¸ºè¯å¥ç¼©è¿ãPythonå ·æ丰å¯å强大çåºï¼å¸¸è¢«æµç§°ä¸ºè¶æ°´è¯è¨ï¼è½å¤æç¨å ¶ä»è¯è¨å¶ä½çåç§æ¨¡å(å°¤å ¶æ¯C/C++)å¾è½»æ¾å°èç»å¨ä¸èµ·ã
ããPHPåPythonçåºå«ä¹äºï¼ä¼ç¹åä¸è¶³ã
ããPHPçä¼ç¹æ¯å®¹æä¸æ(å¦ä¹ æ²çº¿çèå¹³)ãæ¯æææ主æµçWebæå¡å¨ãæä¾äºå¹¿æ³çæ°æ®åºæ¯æãæä¾å¤§éçå¯ç¨æ©å±åæºä»£ç ãéç¨äºå ä¹æ¯ä¸ç§æä½ç³»ç»åå¹³å°;缺ç¹æ¯ä¸éåå¼åæ¡é¢åºç¨ç¨åºãå ¨å±é ç½®åæ°ä¼æ¹åè¯è¨è¯ä¹ï¼ç»é¨ç½²åå¯ç§»æ¤æ§å¸¦æ¥äºå¤ææ§ãé误å¤çæºå¶åæ¥å¾å·®å²ã被认为ä¸å¦å ¶ä»ç¼ç¨è¯è¨æ¥å¾å®å ¨å¯é ã
ããPythonçä¼ç¹æ¯ç®åæå¦ãè¯æ³æ读ææ¡çãå¯å¨å¤ä¸ªç³»ç»åå¹³å°ä¸è¿è¡ãæä¾äºå¿«éåååå¨æè¯ä¹åè½ãæäºæ建åºç¨ç¨åºãé¢å对象ç¼ç¨é©±å¨åãéè¿è®¤çå®æ½ç¨åºå å模åï¼è·å¾å¯éç¨æ§;ä¸è¶³æ¯å¨å¤çå¤å¤çå¨/å¤æ ¸å¿å·¥ä½æ¹é¢å ¶å®ä¸æ¯å¾å¥½ã缺å°åä¸æ¯ææºæãè¿è¡é度ä¸å¦Javaçè¯è¨ã
ããPHPåPythonçåºå«ä¹ä¸ï¼åä¼ç¾¤ä½ã
ããPHP已被许å¤è¡ä¸å¹¿æ³æ¥åï¼æ¥æçåºå¤§ç¤¾åºï¼ç®åé èãè°·æ以åFacebookç大ä¼ä¸é½å¨ä½¿ç¨PHPè¿è¡å¼å;Pythonéç人工æºè½æ¶ä»£çå°æ¥èå ´èµ·ï¼å å½å®¶å¤§å¹ æ¯æèç«çï¼ç®å已形æåºè²ç社åºæ¯æï¼é èå°å¾ãZopeå ¬å¸ä»¥åLinux Weekly Newsçä¼ä¸åå¨ä½¿ç¨Pythonã