PHP Komutları

Tenacius

Kıdemli Üye
23 Eki 2010
3,540
0
Wants to be anywhere
if
if komutu bir ifadenin doğru olması halinde izleyen komut kümesini işletir. İngilizce anlamı “eğer” olan kelime üstlendiği görev bakımından da anlamı ile bir bütünlük içindedir.
<?
################
# if.php #
################

$a = 5;
$b = 3;
if ( $a > $b )
{ echo “a sayısı b sayısından büyüktür.”; }
?>
Yukarıdaki kod parçası $a değişkenindeki değerin sayısal olarak $b dekinden büyük olması halinde komut kümesinde belirtilen kodu yerine getirip ekrana “a sayısı b sayısından büyüktür.“ metnini basacaktır. Aksi taktirde (yani $a’nın sayısal değeri $b’ninkinden küçük ise) hiçbir işlem yapılmadan komut kümesindeki kod atlanır.
if... else ...
Bu komutta if komutunda olduğu gibi belirtilen ifadenin doğru olması halinde if ile belirtilen komut kümesini işletir, ifadenin yanlış olması halinde ise else ile belirtilen komut kümesi işletilecektir.
<?
###################
# if_else.php #
###################

$a = 2;
$b = 3;
if ($a > $b) {
echo “a sayısı b sayısından büyüktür.”;
} else {
echo “b sayısı a sayısından büyüktür.”;
}
?>
Parantez içindeki mantıksal ifadenin doğruluğu halinde if komutunu izleyen komut kümesini (“{“ ve “}” işaretleri ile sınırlı bölge) işletilir. Yukarıda $a ile belirtilen değişkenin sayısal olarak değeri $b ile belirtilenden büyük olması halinde ekrana “a sayısı b sayısından büyüktür.” metni aksi taktirde, yani $a değişkeni sayısal olarak $b'den küçükse, ekrana “b sayısı a sayısından büyüktür.” metni basılacaktır. Komut kümesinde belirtilen kod sadece ekrana yazı yazma değil, her türlü işlem için düzenlenebilir.
while
Yine İngilizce anlamı “esnasında” olan kelime yaptığı görev itibari ile anlamına yakındır. Parantez içinde belirtilen koşul doğru olduğu sürece istenilen komut kümesini işletir. Aşağıdaki örnek ilk bakışta biraz karışık gelebilir fakat dikkatli ve adım adım takip ederseniz pek de karışık olmadığını anlayacaksınız.
<html>
<head><title>HTML içinde kullanılan PHP</title>
</head>
<body bgcolor="#ffffff" text="#000000">

<?
################
# while.php #
################

$a = 1;
while($a < 7):
echo “<h$a>Bu h$a ile yazılmış bir başlık.</h$a><br>\n”;
$a = $a + 1;
endwhile;
?>

</body>
</html>
Yukarıdaki örnek hem while döngüsünün kullanımına hem de HTML içinde PHP kullanımına güzel bir örnek oluşturuyor. Kullandığım while döngüsünü aşağıdaki gibi de yazabilirdim.
<html>
<head><title>HTML içinde kullanılan PHP</title>
</head>
<body bgcolor="#ffffff" text="#000000">

<?
################
# while.php #
################

$a = 1;
while($a < 7)
{
echo “<h$a>Bu h$a ile yazılmış bir başlık.</h$a><br>\n”;
$a++;
}
?>

</body>
</html>
Sonuç yine aynı olacaktır. Kullanım açısından bir fark yoktur hangisinin kullanılacağı programcıya kalmıştır fakat ben örneklerimde hep ikinci kullanımı tercih ediyorum.
Yukarıdaki örnekte yabancı olduğunuz bir kullanım $a++ ifadesidir (Bu kullanımın aynısı C’de de vardır) Bu ifade $a = $a + 1 ifadesi ile aynıdır (Programcılıkta çok kullanılan bir ifadedir fakat deneyimi olmayanlar biraz zorlanacaktır). Bunun anlamı, ”$a’daki değeri bir arttır ve sonra bu değeri $a’nın yeni değeri olarak ata” dır. Yani $a = 1 ise $a++’dan sonra $a = 2 olacaktır. Aynı şekilde $a--'de, “$a’nın değerini bir azalt ve bu değeri $a’nın yeni değeri olarak ata” dır.
Yukarıdaki örnekte ilk olarak $a değişkenine 1 değeri atanıyor ve bu <h$a> ifadesi ile bir HTML etiketine çevriliyor. $a = 1 değeri için bu ifade <h1>, $a = 2 için bu ifade <h2> ... diye değerler alır. while döngüsü ile $a’nın alabileceği en son değerin 6 olduğu belirtilmiştir ($a < 7, yedi olduğu an döngü son bulur!). $a’nın 7 değerini alması ile belirtilen koşul yanlış olur (yani 0) ve döngü işletilmez. Eğer $a++ ifadesi kullanılmamış olsaydı, program sonsuz döngüye girecekti bu da ekrana sonsuz kere <h1> etiketi ile belirtilen metnin basılması demektir. (Aslında sunucu sistemdeki PHP ayar dosyasında öntanımlı olarak PHP dosyalarının maksimum çalışma süreleri 30 saniye olarak belirlendiği için sonsuz döngü sözcükleri tam olarak doğru değildir).
while döngüsünde koşul önce gözden geçirilir, daha sonra işlemler gerçekleştirilir.
do ... while
do...while döngüsü, while döngüsü ile aynı işleve sahiptir. Yalnız arada bir fark vardır. While döngüsünde koşul döngüye girilmeden kontrol edilir buna karşın do....while döngüsünde koşul döngünün sonunda kontrol edilir.
<?
$a = 0;
do {
print $a;
} while($a > 0);
?>
Yukarıdaki kod normal while döngüsü ile yazılmış olsaydı, yani aağıdaki gibi
<?
$a = 0;
while($a > 0) {
print $a;
}
?>
ekrana hiçbir çıktı vermeyecekti. Halbuki ilk örnekte ekrana “0” basılacaktır. Do....while ile oluturulan bir döngü while ile de oluşturulabilir ve benim şahsi görüşüm, while döngüsünün kullanımı daha kolaydır. Tabi ki bu döngünün de kendine has kullanım alanları vardır ama ben şu ana kadar kendi yazdığım betiklerde bu tür döngüler için hep while döngüsünü kullandım.
for
for döngüsü de hemen hemen aynı işlevi görür. Kullanım şeklini, while döngüsündeki örnek ile aynı çıktıyı verecek bir örnek ile açıklamak istiyorum.
<html>
<head><title>HTML içinde kullanılan PHP</title>
</head>
<body bgcolor="#ffffff" text="#000000">

<?
################
# for.php #
################

for ($a = 1; $a < 7; $a++)
{
echo "<h$a>Bu h$a ile yazılmış bir başlıktır.</h$a><br>\n";
}
?>
</body>
</html>
Yukarıdaki kod da while döngüsündeki ile aynı çıktıyı verir. for döngüsünde değişkenin başlangıç değeri ilk olarak yazılır, daha sonra koşul ve en sonunda ise değişken için işletilmesi gereken bölüm gelir. Yani kullanımın kalıbı
for (ilk_değer;koşul;işlem)
şeklindedir.
Tabii benim kullandığım örnek tüm döngüler için geçerli, öyle durumlar ile karşılaşırsınız ki alternatifiniz olmaz yani sadece for ya da while döngüsünü kullanabilirsiniz. Nasıl olsa hepsi aynı işi yapıyor diye üstten bakıp geçmeyin, iyice kavrayın.
switch
switch döngüsü aslında iç içe geçmiş if döngüleridir. Fakat, kişisel deneyimlerime dayanarak söylüyorum, birçok if kullandığınız bir döngüde iş bazen gerçekten içinden çıkılmaz bir hal alıyor. Mesela bir web formu ile (drop-down menu ile) size bir değer gelecek. Siz bu değerin ne olduğunu anlamak istiyorsunuz. Bunun için menüde önceden tanımlı değerler arasında bir secim yapılır. İşte bu seçim için switch döngüsü kullanılır. Aşağıdaki dosyaları yorum kısımlarında belirtilen isimler ile kaydedin ve daha sonra istemcinizden menu.html dosyasını açın.
<!-- menu.html adı ile kaydedin -->
<html>
<head>
<title>Menu</title>
</head>
<body bgcolor="#ffffff" text="#000000">
<form action="menu.php" method="post">
<b>İşletim sisteminizi seçin</b><br>
<select name=”os_type” size=”1”>
<option value=”win”>Windows 9x</option>
<option value=”winnt”>Windows NT</option>
<option value=”linux”>Linux</option>
<option value=”unix”>UNIX</option>
<option value=”os2”>OS/2</option>
<option value=”macos”>MacOS</option>
</select>
<input type="submit" value=” Sorgula “>
</form>
</body>
</html>
<?
// menu.php adı ile kaydedin

switch($os_type)
{
case “win” :
echo “Kullandığınız işletim sistemi Windows 9x”;
break;
case “winnt” :
echo “Kullandığınız işletim sistemi Windows NT”;
break;
case “linux” :
echo “Kullandığınız işletim sistemi Linux”;
break;
case “unix” :
echo “Kullandığınız işletim sistemi UNIX”;
break;
case “os2” :
echo “Kullandığınız işletim sistemi OS/2”;
break;
case “macos” :
echo “Kullandığınız işletim sistemi MacOS”;
break;
}
?>
Yukarıdaki örnek kullanıcıya kullandığı işletim sistemini soruyor ve gelen cevap doğrultusunda döngüde belirtilen kısmı işletiyor. Kullandığım break komutu programın o kısmının işletilmesi halinde döngüden çıkılmasını sağlar, yani kullanıcı işletim sistemin Linux olarak işaretlemişse Windows, WindowsNT ve en son Linux bölümü işletilir. Linux bölümündeki “Kullandığınız işletim sistemi Linux” metni ekrana basılır ve bir sonraki komut olan break işletilir, break komutunun işlemesi ile döngüden çıkılır ve böylece diğer değerler kontrol edilerek vakit kaybedilmez.
switch döngüsünde kullanılan ve benim şu örnekte kullanmadığım bir özelliği daha var: default seçeneği.
Bu seçenek diğer hiçbir seçim doğru olmadığı taktirde çalıştırılacak kısımdır. Bir örnek vermek gerekirse.
<?
// menu.php adı ile kaydedin

$i = 5;
switch($i)
{
case “2”:
echo “Değeri 2”;
break;
case “3”:
echo “Değeri 3”;
break;
default:
echo “Değeri bilinmiyor”;
}
?>
Bu kod ekrana “Değeri bilinmiyor” yazacaktır. Çünkü siz $i değişkenine tanımlı olan 2 ve 3 değerleri dışında ne değer verirseniz verin bu iki koşul dışında kalan bölüm yani default ile tanımlı bölüm işletilecektir.
Bazı PHP İşlevleri
Include() ve Require() işlevleri
include ve require işlevleri bir PHP programcısının hayatını kolaylaştıran başlıca işlevlerdendir. Bu iki işlevin görevleri birbirinin aynı olsa da işleyişlerinde ufak ama önemli bir fark vardır. Bu iki işlev parametre olarak aldıkları dosyayı sanki o dosyanın tüm içeriğini yazılmışçasına işler. Mesela
<?
#################
# inc_req.php #
#################

include (“./dosya.html”);
require (“./dosya.html”);

?>
Bu PHP kodu bulunduğu dizindeki dosya.html dosyasını iki kere ekrana basar. Yani sanki siz o dosyanın içeriğini elle yazmışsınız gibi çalışır. Bu iki işlev arasındaki fark, require() işlevi sadece gerektiği durumlarda dosyayı işler fakat include() işlevi dosya ekrana basılmayacak olsa bile (bir döngü içinde olabilir) dosyayı açıp hafıza kaybına sebep olur. Bunun için include() işlevini kullanmanızın zorunlu olmadığı durumlarda require() işlevini kullanmanız performansı arttıracaktır.
mail() işlevi
Adından da anlayacağınız üzere PHP’de e-posta göndermek için kullanılan işlevdir. Kullanımı çok basit ve zahmetsiz olmasına karşın eğer denemelerinizi evde bir Windows sistemi üzerinde gerçekleştiriyorsanız bu işlevi kullanmak için bilgisayarınıza bir de eposta sunucusu kurmanız gerekli (ne yazık ki PHP ile kullanılan birçok işlev Windows altında sorun çıkarıyor). Kurulu bir Linux sistemde böyle bir sorununuz yok, çünkü Linux ile birlikte kurulan sendmail programı e-posta gönderme işinizi hallediyor.
<?
######################
# mail_gonder.php #
######################

mail ($kime, $konu, $mesaj, ”From: $kimden\n”);

?>
Yukarıdaki tek satır $kimden değişkeni ile gelen kişinin adresi ile $kime adlı adrese $konu adlı ve içeriği $mesaj olan e-postayı gönderir. “From:” bölümü e-postanın kimden geldiğini belirtir. Tabi yukarıdaki PHP dosyasının çalışabilmesi için bu dosyaya gerekli bilgileri yollayacak HTML dosyasının da yazılması gerekli.
system() işlevi
Bu işlev PHP bir sistem modülü olarak kurulduğunda işletilebilir bir işlevdir. C programlama dilindeki system() işlevi ile aynı görevi yapar. Yani işleve parametre olarak girilen komutu işletim sistemi üzerinde işletir.
<?
##################
# system.php #
##################

$dizin_icerigi = system(“ls”);
echo $dizin_icerigi;
?>
Yukarıdaki örnek PHP dosyamızın bulunduğu dizinin içeriğini ekrana basar.
isset() ve unset() işlevleri
isset() işlevi bir değişkenin içersinde bir değer bulunup bulunmadığını kontrol eder. Bazen bir PHP programında değer atanmamış değişkenler de bulunabilir. Bu değişkenler boş yere bilgisayarın hafızasında yer işgal eder. Ayrıca bu işlevi bir formdan bilgi alırken bilginin gönderilip gönderilmediğini kontrol etmek için de kullanabiliriz.
unset() işlevi ise kendisine parametre olarak verilen değişkeni yok eder. Kullanımları isset($degisken) ve unset($degisken) şeklindedir.​
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.