2013-03-07 69 views
1

這只是一個好奇心的問題...... 我想知道如果在這個方法中訪問函數返回的數組是有效的。在這個例子中,我使用了pathinfo()結果數組。這是一個有效的PHP數組訪問方法嗎?

pathinfo($file)['dirname']; 

或者,是否需要首先將pathinfo()設置爲變量,然後才能訪問它。 (經典方法):

$info = pathinfo($file); 
$info['dirname']; 

我知道經典的方法是有效的,但我只是好奇,如果第一種方法也是有效的。我已經用最新版本的WAMP對它進行了測試,並且它工作正常,但Dreamweaver CS5將其稱爲語法錯誤。

+1

他們在PHP 5.4倆都_valid_(這意味着他們將工作)。在PHP <5.4中,只有第二個是有效的。但是,兩者都不是可以接受的,因爲你不像你應該那樣在你的數組鍵上使用引號。 PHP只是(可惜)寬鬆,足以將它轉換爲一個字符串給你(如果常量不存在) – 2013-03-07 13:52:38

+0

我忘了引號,我已經編輯修復。 – Johnno13 2013-03-07 13:57:41

回答

1

PHP 5.4+支持pathinfo($file)['dirname'];

它被稱爲陣列解引用

價:http://www.schlueters.de/blog/archives/138-Features-in-PHP-trunk-Array-dereferencing.html

價:http://php.net/manual/en/language.types.array.php

且小於5.4

$info = pathinfo($file); 
$info['dirname']; 
+0

對不起,我編輯了代碼 – 2013-03-07 13:53:51

+0

@ColinMorelli我編輯了他的答案並添加了引號,但理論上可能在代碼中有'define('dirname',5)'或類似的字符,在這種情況下引號不應該被添加。 – 2013-03-07 13:54:44

+0

感謝您的回答。我希望它會是一個較早的版本,因爲我的生產服務器是5.3.1。 – Johnno13 2013-03-07 13:55:24

相關問題