Dizi olarak PHP kullanımı fonksiyon dönüş değeri

3 Cevap

Neden bu çalışıyor olmasıdır:

        $cacheMatchesNotPlayed = $cache->load('externalData');
        $cacheMatchesNotPlayed = $cacheMatchesNotPlayed['matchesNotPlayed'];

Ama bu işe yaramazsa:

        $cacheMatchesNotPlayed = $cache->load('externalData')['matchesNotPlayed'];

Bunun için bir neden mi var? Ikinci bit yazmak kolaydır.

3 Cevap

PHP yapmak istediğiniz çözümleyecek işlev dizi desteklemiyor.

Konuyla http://wiki.php.net/rfc/functionarraydereferencing üzerine bir RFC ve geçen yıl kabaca bu kez reddedildi ilişkili posta listesi konuşmaları, bkz. Orada bunun için destek oldu, ve (genellikle "why doesn't this work?") hala yaygın bir istek olsa da, bu sözdizimi tanıtmak için harekete hiçbir planları vardır.

why gelince, oldukça basit kodu (tüm yazılı edilmiş ise) onay için sunulmamıştır uygulanması.

Update

Bu özellik, gövde (ana kalkınma) PHP dalı olarak uygulamaya konmuştur ve büyük olasılıkla önümüzdeki olmayan hata düzeltme sürümü (5.4.0) dahil edilecektir. ADÖ ile oynamak isteyen herkes için, bir trunk snapshot indirmek için çekinmeyin.

PHP bu sözdizimi desteklemiyor çünkü.

PHP sadece tarif ettiğim şekilde çözümleyecek dizi desteklemiyor. Ayrıca burada kapalı:

http://stackoverflow.com/questions/742764/php-syntax-for-dereferencing-function-result