全国服务热线:400-035-8011

位置:沈阳兄弟连IT培训学校 > 学校动态 > PHP是好的语言这个梗是怎么来的

PHP是好的语言这个梗是怎么来的

来源:沈阳兄弟连IT培训学校时间:2019/11/28 9:39:57

  这个梗的来源其实已经不可考,但是由此衍生的段子(多数为黑php)却数不胜数。要解释这个梗的由来,追本溯源就要先解释一下PHP语言自身。

  PHP有很多奇怪的设计,令大部分人必须有个参考手册握在手边才敢写代码,但它仍然能够吸引众多开发者。重要的原因是:它拥有门槛低和用户群体大的优势

  但是用户群大了,各种水平的人都会有。入门虽然很容易,但精通PHP是很难的,毕竟这个语言及其标准库里有太多未定义行为。

PHP是好的语言这个梗是怎么来的

  用户群中存在不少并不够精通PHP的群体,有些人没有真正尝试过其它语言,没经历过这些语言和解释器设计不佳的部分。

  也有些人由于长期使用PHP,对它产生了异常深厚的情感。

  于是产生了一种现象:有些人认为PHP就是简单完善好的语言,并且热衷于在各种论坛等地方与其他人进行争辩。

  所谓一粉顶十黑,“PHP是好的语言”的梗即由此而来,其实它并不是讽刺PHP语言本身,而是在讽刺并不深入理解PHP的开发者。

  如果想深入了解这个梗和PHP为什么容易招黑,还得先从它的缺点说起:

  PHP的不足

  PHP尽管用户颇多,但不足也十分明显。一个“好编程语言”的标准,基本可以归结于如下几点:

  l 编程语言特性是有逻辑而可预测的

  l 编程语言内各个元素是协调的

  l 编程语言总体感官是简洁清晰的

  l 编程语言执行结果是可靠的

  l 程序出错时能够提供准确可靠的调试信息以供除错

  但是这些PHP却明显的做得不够好:

  1. 标准库的函数名、参数顺序实在是难以预测这可能是由于PHP在短时间内发展,但代码风格没有统一带来的结果。

  就比方说字符串操作系列函数,strpos、strcspn里两个词素没有任何分隔符,到了str_replace、str_repeat却又冒出了下划线。

  有些地方是bin2hex,有些地方却又是strtolower 。比如mysql_escape_string看意思是做mysql的查询串中的安全转义,这可以理解。

  然后它又出了个新版本,嗯——mysql_real_escape_string……等等,之前那个难道不是真的?

  实际上,PHP的早期函数风格类似Perl,但是标准库里大票的东西却参考自C(于是有大批函数需要带个out参数来获得返回值)。

  到了PHP5之后OO部分却又参照C++和Java,于是这样混杂的风格就出现了。

  不仅这些,你还会奇怪既然学自这几个语言,那学来的三目运算符a?b:c,讲道理应该要跟它们一样吧?不,这玩意是独树一帜的左结合的……

  2. 然后是协调性和可靠性,例如,"foo" == TRUE成立,"foo" == 0也成立,这个你说不同类型无法比较,算是说得过去,偏偏TRUE != 0,这个等于比较运算都不是可传递的了。

  使用==进行比较时,会默认当做是比较数字,不是数字的话先cast成数字,所以如果不幸你拿两个字符串去比较,就会出现"233" == "0233"这样的结果。

  有人会说字符串比较应该用eq嘛,但是PHP也是个动态类型的东西,保不齐要比较数字的函数里传进了个字符串,它倒也不来个crash,这里就不得不先做好类型检查。

  好吧那不看字符串?NULL == 0与NULL < -1同时成立……

  再比如[]运算符,任何东西都能用[]来取个下标,只不过这玩意要是没有下标,结果就是个NULL。还有例如变量名是大小写敏感的,函数名和类名却是大小写不敏感的。

  3. 奇异的写法简洁清晰部分,使用独有的字符串运算符eq和&都还说得过去,但是说起往一个数组末尾添加一个元素,居然有这么奇异的写法。

  $arr[] = $elem ,这个东西让你不得不反复考虑[]运算符到底表示什么语义,特别是考虑上一条里的万物[]。

  再来看看类型别名,int/integer,bool/boolean,float/double/real这几组东西其实是完全相同的。

  4. PHP的异常捕获系统非常异常,很难说清楚到底哪些情况会抛出异常哪些并不会。更恶心的是整个PHP在出现异常中断时,不会有栈回溯……

  你在代码的数个地方调用了某个函数,然后在函数内它抛了异常,可能是调用时的参数问题,但是就是不知道到底是在哪儿调用的,感受一下这个debug场景……

  虽然PHP有很多不足,导致很多人吐槽这门语言,但并不代表它不是一门好的语言,那么多人喜欢PHP并非空穴来风。

领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/1791/news/113508/违者必究! 以上就是沈阳兄弟连IT培训学校 小编为您整理 PHP是好的语言这个梗是怎么来的的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-035-8011