PHP/Kodlama

Vikikitap, özgür kütüphane
< PHP

PHP betikleri, açılış etiketinden başlanıp kapanış etiketine kadar PHP yorumlayıcısı tarafından işleme sokulurlar. Açılış ve kapanış etiketlerinin dışında kalan kısımlar, PHP yorumlayıcısı tarafından es geçilir.

<span>
<?php
    echo "Vikikitap";
?>
</span>

Yukarıdaki kod parçasındaki span HTML etiketi PHP yorumlayıcısı tarafından es geçilir. <?php açılış etiketinden başlanıp ?> kapanış etiketine kadar olan kısımlar ise PHP yorumlayıcısı tarafından işleme sokulur. Bu durumda, son satırdaki span kapanış etiketi de yorumlayıcı tarafından es geçilecektir.

Kod yazımı[değiştir]

PHP'de, zorunlu bir kodlama standardı yoktur.

<?php echo "Vikikitap"; echo " PHP Programlama Dili"; ?>

Aynı kod şöyle de yazılabilirdi:

<?php
    echo "Vikikitap";
    echo " PHP Programlama Dili";
?>

Yukarıdaki kodların ikisi de geçerlidir. Yani beklendiği gibi çalışır. Çünkü PHP yorumlayıcısı birden çok boşluğu, tab (sekme) ve satır sonu karakterlerini boşluk olarak ele alır.

Denildiği gibi iki kod da istenildiği gibi çalışır. Ancak ilk örneğin, iyi bir kodlama stiline sahip olduğu söylenemez.

Okunabilirlik ve girintileme[değiştir]

Herhangi bir programın istenen işi yapması, onun verimli bir program olması için yeterli değildir. Ayrıyeten birçok etken vardır. Bu etkenlerden biri okunabilirliktir. Kodlar, okunabilirliği artırmak adına belli bir standarda göre girintilenerek yazılmalıdır. Buna girintileme veya hizalama denir.

<?php
if(empty($_GET["sorgu"]) || $_GET["sorgu"] == "anasayfa")
{
    include "anasayfa.php";
    exit;
}
else
{
    $_GET["sorgu"] = explode("/", $_GET["sorgu"]);
    if($_GET["sorgu"][0] == "uye")
    {
        include "uye.php";
        Uye::sablon_cagir($_GET["sorgu"][1]);
    }
}
?>

Örneğin yukarıdaki kod parçasında iç bloklar ve deyimler girintilenerek yazılmıştır. Bunun gibi girintilenerek yazılan kodlar, yapılan işin daha kolay algılanmasını sağlar. İlerleyen konularda, yazılan kodlar uzadıkça ve işin içine denetim ifadeleri, döngüler, fonksiyonlar vb. girince girintilemenin önemi daha iyi anlaşılacaktır.

Girintileme yapmak için klavyedeki tab (sekme) adı verilen tuş veya 4 adet boşluk kullanılır. Zaten tab tuşu da genellikle 4 adet boşluğa denk gelir ancak bu durum kullanılan IDE veya metin editörü ne bağlı olarak değişebilir. Tab tuşunun kaç adet boşluk bırakacağı IDE veya metin editörünün ayarlarından değiştirilebilir.

Noktalı virgül[değiştir]

PHP'de noktalı virgülün işlevi deyimleri birbirinden ayırmaktır. Az önce belirtildiği gibi PHP sekmeleri (tab), birden fazla boşluğu ve satır sonlarını birer boşluk olarak ele alır. Bu durumda, deyimlerin karışmaması ve PHP yorumlayıcısının yazılan kodları düzgün bir biçimde işleme koyabilmesi için noktalı virgül kullanılır.

<?php
    echo "Vikikitap";
    echo " PHP Programlama Dili";
?>

Yukarıdaki kod parçasında iki adet echo deyimi vardır ve bu deyimlerden sonra birer noktalı virgül konulmuştur. Noktalı virgüller, ilgili deyimin veya komutun sonuna gelindiğini belirtir.

Yorumlar[değiştir]

PHP'de ikisi tek satırlık, biri de çok satırlı olan 3 tane açıklama tarzı vardır.

<?php
    echo "Vikikitap"; // tek satırlık yorum
    # tek satırlık başka bir yorum
    echo " PHP Programlama Dili";
    /*
    çok satırlı
    yorum
    */
?>

Tek satırlı yorumlar için , # (diyez işareti) veya // (iki adet bölü işareti) kullanılır. Çok satırlı yorumlar ise /* ile başlar ve */ ile sonlanır.

Yorumlar, kodları yazana ve okuyana kolaylık sağlar. Yazdığımız programlardaki yorumlar, o programlara sonradan baktığımızda orada yapılan işi hatırlamamızı sağlar. Aynı şekilde yazdığımız kodlar, başkası tarafından okunduğunda da okuyan kişiye bilgi vermesi açısından önemlidir. Ama yorum satırlarının bunun dışında bir işlevi daha vardır. Örneğin yazdığımız programdaki herhangi bir işe henüz tam karar vermemişsek veya yazılan bir komutun henüz işleme konulmasını istemiyorsak yine yorum satırlarından yararlanabiliriz.

<?php
    // echo "Vikikitap";
?>

Yukarıdaki kod parçasında, // tek satırlık yorumu bu amaçla kullanılmıştır. PHP yorumlayıcısı, bu satırı açıklama olarak görecek ve echo deyimini işleme sokmayacaktır.