Ben php dizilerde Hypens, alt çizgi veya camelCase kullanmalı mıyım?

7 Cevap php

Ben sadece php diziler (ve genel olarak php) kullanmaya başladı

Ben aşağıdaki gibi bir kod var:

languages.php:

<?php
$lang = array(
    "tagline" => "I build websites...",
    "get-in-touch" => "Get in Touch!",
    "about-h2" => "About me"
    "about-hp" => "Hi! My name is..."
);
?>

index.php:

<div id="about">
   <h2><?php echo $lang['about-h2']; ?></h2>
   <p><?php echo $lang['about-p']; ?></p>
</div>

Ben hypens kullanıyorum (about-h2) ama bu bana ileride sorunlara neden olur emin değilim. Herhangi bir öneriniz?

7 Cevap

Deve durumda ve alt arasındaki kişisel tat. Ben düzenli değişken adları için kullanmak ne olursa olsun kongre kullanmanızı tavsiye ediyorum, böylece düşünme sol değil "bu bir ... altını veya deve böyleydi?" ve halefi o stilleri karıştırma için işkence olabilecek tüm yolları hakkında düşünme sol değildir. Birini seçin ve yönüyle ona sopa.

Tire çok kötü bir fikir budur - Ayrıca, nadiren, bir dizi alır ve düzenli değişkenleri içine üyelerini dönüştürür extract gibi bir şey kullanmak isteyeceksiniz:

$array = array("hello" => "hi", "what-up" => "yup");
extract($array);
echo $hello; // hi
echo $what-up; // FAIL

Daha az karakter var çünkü Şahsen ben, deve durumda tercih.

Aslında şaşırdım hiç kimse henüz bu dedi. Ben aslında oldukça kötü biz dizi anahtarları değil, değişkenler hakkında konuşurken herkesin değişken isimlendirme standartları getiriyor bulabilirsiniz.

Fonksiyonel bilge, tire kullanarak herhangi bir sorun olmaz, camelCase sizin dizi anahtarları, çiziyor. İsterseniz bile boşluk, yeni satır veya null byte kullanabilirsiniz! Bu ^ kodunuzu işlevselliğini etkilemez.

Dizi anahtarlar ya int veya string. Eğer bir anahtar olarak bir string kullandığınızda, bu kod başka string olarak kabul edilir.

Yani standart bir veri yapısını bina varsa, size değişkenleri adları için kullandığınız aynı standardı kullanarak daha iyi, söyleniyor.


^ Unless you are planning to typecast to a (stdClass) veya yerine [(3)] {of ->{"My Key Is"} kullanarak önlemek için geçerli değişken isimlerine dönüştürmek tuşlarını kullanmak hangi durumda, extract() kullanın }. Hangi durumda, anahtarlar [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* uygun emin olun.

Hiç en centrical hissediyor ne kullanabilirsiniz, ancak ben hypehens kullanarak tavsiye etmem.

Ortak bir yaklaşım camelCase kullanmak için ve bu çerçeveler standartların bir sürü sormak budur.

Ben bu kullanmanızı öneririz.

 $thisIsMyVariable

 $this-is-not-how-i-would-do-it

Ayrıca, tire kullanarak değişkenler çıkarılarak gibi görünmesi ki bulabilirsiniz. Yani o kullanmak zorunda

 $object->{”Property-Here”}

Onun sadece güzel değil. (

Düzenleme, üzgünüm sadece Array soruya değil, değişkenler hakkında sorular olduğunu gördüm. Her iki şekilde de, benim cevabım hala geçerlidir.

Ben tek kelimeyle içine tüm eklemek istiyorum. Hepsini bir araya ekleme değilse, bunu kısaltmak istiyorsunuz ya da kullanmak _.

Uzun vadede, seçim için karar ne olursa olsun adil olmak consistent.

first result Google "php kod standartlarına" diyor:

  • sözcük ayırıcı olarak '_' kullanın.
  • kullanmayın '-' sözcük ayırıcı olarak

Ama, yapabilirsiniz hemen hemen zaten takip standartlara yoksa ne istersen yaparım. Sadece ne de tutarlı olmak.

Sizin kod bakarken: Eğer başından itibaren sizin uluslararasılaşma çabaları için gettext http://de2.php.net/manual/en/intro.gettext.php gibi bir şey kullanın Belki de diziler ve tuşları ile bazı iş önleyebilirsiniz.

Bu son olarak neden olur

<h2><?php _("About me..."); ?></h2>

veya

<?php 
$foo = _("About me..."); 
 ...
?>

Zend, deve davayı kullanmak için programcı söyle, ama şahsen ben değişken adları, dizi anahtarları, sınıf adları ve fonksiyon adları için sözcük ayırıcı olarak kullanılan alt çizgiler de dahil olmak üzere birçok millet. Ayrıca, will sermayelerini kullanmak sınıf isimleri hariç tüm küçük,.

Örneğin:

class News
{
    private $title;
    private $summary;
    private $content;

    function get_title()
    {
        return $this->title;
    }
}
$news = new News;