成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

正反博弈 PHP命名空間真的槽糕嗎?

開發 后端 前端
命名空間對于C#和Java開發者而言都不是新事物了,而對于PHP來講,直到PHP 5.3中“命名空間”才被引入,“命名空間”的加入將使得PHP開發者可以更好的改變PHP程序結構,解決命名沖突等問題。

在PHP 5.3中,最重要的一個新特性就是對命名空間引入,在此之前,PHP開發者對于PHP中命名空間的實現,已經變得異常的渴望。當PHP應用開始變得巨大,并且更加復雜的時候,命名空間是解決代碼沖突的必要手段。

51CTO相關文章推薦:PHP命名空間規則解析及高級功能

批評者:混亂的PHP

像C#和Java這些語言,是被設計和遵循嚴格的語法標準的。PHP是演化的。最早的版本發布于1995年,版本號3,是面向過程的語言。PHP 4包含了最基本的面向對象,而PHP 5提供了合適的標準OOP模型,命名空間在版本PHP 5.3中被加入其中。

PHP

PHP批評者聲明說這個語言是混亂的。函數名不一致(例如strpos,str_split,substr),對象處理是無用的,還有一些語法同其他語言相比,不是極其怪誕,就是異乎尋常。然而,PHP仍然保持著使用最廣泛的服務器端開發語言的頭把交易。它的才華主要在下面的長處:

◆初學者可以從簡單的面向過程編程開始。

◆他們無須觸及OOP技術仍然可以有所見數

10年前為PHP 3編寫的代碼仍然可以運行在PHP 5.3下。可能需要一些微小的調整,但是很少需要大量重寫。PHP代碼可能并不總是可愛的、有邏輯的或者優雅的,但是相比其他選擇它的開發總是快捷和容易被理解的。

PHP命名空間的實現

不像C#和Java,PHP不得不保持沒有名字空間的代碼的兼容性。這個已經被實現,你可以選擇使用或者不使用命名空間。然而,如果你使用PHP 5.3或更高版本,我推薦使用命名空間,即使你在項目中只使用相同的名字。

使用namespace和use作為命名空間操作符看起來很有邏輯。一些開發者可能不同意,但是在這種情況下它們如何命名其實并不重要。***,回到反斜杠的問題上。多數批評者人為這是丑陋的,難以閱讀,并且在Mac上難以輸入。即便如此,我仍然認為它比曾經提議過的兩個冒號要好。例如下面的靜態方法調用:

  1. // PHP 5.3 beta版靜態方法調用  
  2. echo ::App::Lib1::MyClass::WhoAmI();  
  3. // PHP 5.3正式版靜態方法調用  
  4. echo \App\Lib1\MyClass::WhoAmI(); 

第二行可以被快速錄入,更少的錯誤可能,容易閱讀,并且容易理解。如果你在字符串之外看到反斜杠,你就知道那一定存在命名空間。

當然,如果PHP使用“.”作為公共方法、靜態方法和命名空間會更好。這樣可以同Java、C#、JavaScript、Python和許多其他語言一致起來。不幸的是PHP的歷史和向下兼容讓這一切難以實現。

沒有語言是***的,而PHP更加不會是***語言中的一員。無論如何,命名空間已經被很好的實現,特別是考慮到它可能產生的限制和問題。

文章作者通過分析PHP命名空間的實現,來反擊那些PHP反對者的聲音,您是否了解PHP的命名空間為什么是這樣的呢?PHP的命名空間真的就那么槽糕嗎?作為PHP開發者,您是如何認為的呢?

原文作者:Craig Buckler

英文原文地址:http://www.sitepoint.com/blogs/2009/08/13/are-php-namespaces-bad/

【編輯推薦】

  1. PHP命名空間規則解析及高級功能
  2. PHP 5.3中的命名空間:你用過了么?
  3. PHP 5.3中的命名空間使用方法淺述 
責任編輯:王曉東 來源: sitepoint
相關推薦

2021-10-15 10:27:42

變量命名

2009-08-25 10:58:41

PHP命名空間

2009-07-20 10:18:49

PHP 5.3命名空間

2009-07-01 09:32:11

PHP 5.3.0

2009-07-17 09:31:06

PHP 5.3命名空間

2009-08-27 15:34:38

C#命名空間

2009-08-28 13:56:25

C#反射命名空間

2009-09-11 09:22:14

System.Linq

2013-08-21 16:48:42

.Net命名空間

2009-08-12 10:46:54

C#命名空間

2011-05-20 14:54:46

ADO.NET

2011-06-09 15:27:01

JavaScript

2020-07-13 07:00:21

Kubernetes

2010-01-15 10:47:15

VB.NET命名空間

2011-05-20 14:54:46

ADO.NET命名空間

2019-06-14 14:48:41

多云云計算云平臺

2020-01-15 10:17:41

Kubernetes容器負載均衡

2020-03-04 10:13:55

Kubernetes容器開發

2020-04-17 14:25:22

Kubernetes應用程序軟件開發

2022-07-26 00:00:22

HTAP系統數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: av天天干| 亚洲伊人久久综合 | 日韩av在线一区二区 | 97av | 久久99精品久久久97夜夜嗨 | 成人在线 | xxxxx免费视频 | 国产清纯白嫩初高生在线播放视频 | 精品影院 | 欧美三级在线 | 亚洲一区二区视频 | 久久精品国产免费 | 日日摸夜夜爽人人添av | 夏同学福利网 | 色婷婷综合久久久久中文一区二区 | 一区欧美| 欧美精品综合在线 | 男女视频在线免费观看 | 精品久久久久久亚洲精品 | 日本精品久久 | 亚洲精品日韩一区二区电影 | 草久久久 | 亚洲午夜精品一区二区三区他趣 | 日韩欧美在线播放 | 亚洲精品久久久久久久不卡四虎 | 国产丝袜一区二区三区免费视频 | 国产精品高潮呻吟久久av野狼 | 欧美精品久久久久久久久老牛影院 | 999在线精品 | 9999在线视频 | 国产精品三级久久久久久电影 | 中文字幕成人 | 国产精品久久久久永久免费观看 | 国产精品特级毛片一区二区三区 | 91精品国产综合久久久动漫日韩 | 日韩中文字幕久久 | 精品久久久网站 | 97精品超碰一区二区三区 | 四虎永久在线精品免费一区二 | 黄色免费av| 九九久久精品视频 |