PHP'nin dizi için Kısaltma ()

3 Cevap php

I don't know how about you, but I'm not very fond of the way arrays are constructed in PHP. I have this feeling that I use array keyword way too often ve that array($k => $v) or e.g. array($k1=>array($k2=>$v)) are way too long given usefulness of maps. (Moreover, recently I've learned JS way of doing it ve now I really am jealous)

Ben bu durumu düzeltmek için birlikte gelebilir en iyisi:

function a() { // array
  return func_get_args();
}

ve

function h() { // hash
  $array=array();
  for($i=0; $i<func_num_args()-1; $i+=2) {
    $array[func_get_arg($i)]=func_get_arg($i+1);
  }
  return $array;
}

... Ama onlar => operatörünü kullanarak izin vermez.

Diğer fikirler?

3 Cevap

PHP 5.4 başlayarak, bir shorthand syntax for arrays [ ve ] ile desteklenir. Sizin örnekler:

array($k => $v)
array($k1=>array($k2=>$v))

şimdi yazılı edilebilir:

[$k => $v]
[$k1 => [$k2 => $v]]

PHP dizileri ilan için steno sözdizimi vardır. Ben görmek istiyorum bir özellik, ama ben çok o olacak şüpheliyim.

Bu PHP geliştiricileri ve PHP toplum tarafından çok tartışıldı, ama asla uygulanmadı. Eğer tartışma nasıl gelişeceğini görmek istiyorsanız iyi bir başlangıç ​​noktası PHP wiki geçerli: http://wiki.php.net/rfc/shortsyntaxforarrays

Şimdilik, ekstra karakter bir avuç yazarak katlanmak zorunda kalacaktır.

Texter veya şablonları / makrolar ile herhangi bir iyi düzenleyicisi kullanın. Örneğin:

[]+Tab ---> array({cursor})

Eğer gerçekten takıntılı iseniz, bu bir seçim yoluyla çalıştırmak için bir json_decode makro yapmak:

<?php var_export(json_decode(stream_get_contents(STDIN), true));

Yerine JSON bakmak istiyorum çünkü sadece PHP kodu JSON koymayın ...