2012-01-13 62 views
2

我正在爲PHP編寫一個類庫,它將實現Objective-C中Cocoa框架的一些功能。PHP等價於Objective-C的@「字符串」

的Objective-C提供了創建NSString對象的一個​​方便的簡寫:

NSString *string = @"Hello World!"; 

我試圖想出在PHP中最優雅相當於此。
目前我已經有:

$string = a("Hello World!"); 

a()是創建合適的對象的功能。

任何人都可以提出更優雅的語法嗎?
它顯然必須是有效的PHP代碼。

+2

我不明白你的問題,'$ A =「你好」;'已經創建了一個字符串。 – Maerlyn 2012-01-13 20:41:35

+1

這是一個標準的PHP字符串。我所說的實際上是一個表示字符串的對象,類似於Cocoa中的NSString類。快速瀏覽http://pastebin.com/bippXMfd以查看a()函數的功能。 – 2012-01-13 21:04:44

+0

這是一個完全有效的問題。他有一個自定義的類,它具有比普通字符串更多的功能和方法,並且是面向對象的。並不是說PHP是面向對象編程的最佳選擇,但這個問題非常合理,對語法的關注是有效的。我沒有太廣泛地使用PHP,但我不認爲有任何其他方法可以實現它,因爲這基本上是實現函數的唯一方法。 – Greg 2012-01-13 21:19:13

回答

2

正確的成語是沿着線的東西:

$string = new NSString("Hello, World!"); 

雖然你也許可以想出一些更簡潔,這是最好的方式。一些額外的符號清晰度和遵循標準語言慣例的字符是值得的。

編輯:

基於您的評論,我建議建立一個NS命名空間,並添加任何單個字母的功能,該命名空間,所以你可以做到以下幾點:

$string = ns\s("Hello, World!"); 

你可以對NSNumber等做同樣的事情,而不會污染全局命名空間或打破PHP慣用法。

+0

這就夠了,我正在寫的庫支持這一點。然而,創建NSString對象的方式有點長期,所以Objective-C有一個速記版本 - NSString * string = @「Hello,World!」; - 它完全一樣,並且非常方便,所以我試圖想出一些接近它的PHP語法。在標準方面,這個語法在Objective-C中被認爲是標準的,因爲這就是我所模仿的,所以,模仿它會更好。 :-) – 2012-01-13 21:32:08

+0

命名空間的想法很有趣。我會考慮那個。謝謝。 – 2012-01-13 21:47:17

1

在覈心基礎,蘋果使用CFSTR("constant string");,所以有先例那種方法......