Php Goto Atlamalı Koşul İfadesi

php

Merhaba ben Akif Biçek sizlerle birlikte php de sıfırdan ileri düzey makelelerimizin onbeşincisine başlamış bulunuyoruz. Bir önceki php null operatörü makalemizi okuduysanız sizlerle birlikte php goto atlamalı koşul ifadesi yazımız ile başlıyoruz.

Php Goto Atlamalı Koşul İfadesi

Php goto atlamalı koşul ifadesi , php yazılan kodları baştan aşağıya doğru satır satır okuyor goto ifadeside belirtilen bir satıra atlamak için kullanılır.

Yalnız bu ifadeyi kullanmamız için mutlaka atlanacak satır imlenmiş/hedeflenmiş olması gerek .

Bir satırı imelemek için herhangi bir isim belirliyoruz ve sonuna iki nokta üst üste koymanız yeterli olacaktır.

imele:

İmelenmiş bir satıra gitmek içinde goto yazıp imelenmiş ismi yazmanız ve noktalı virgül koymanız yeterli olacaktır.

goto imele;

Genel olarak mantığını belitmek gerekirse;

goto imele; //imlenmiş / hedeflenmiş Satıra Atla

//Bu arada nekadar kod varsa hiçbiri çalıştırılmaz.

imele: //imlenmiş / hedeflenmiş Satır
//burdan sonraki kodlar çalışır.
<?php
goto imele;

echo 'Bu Echo Komutu Çalıştırılmaz';
print('Print Komutuda çalışmıyor');

imele:
echo 'BurayaGel satırına atlandı <br />';
echo 'Ve BurayaGel Satırından Sonraki Kodlar Çalışıyor.';
php goto atlamalı koşul ifadesi
php goto atlamalı koşul ifadesi

Yalnız burada dikkat etmemiz gereken husus imelenmiş satır yukarda olmaması gerekiyor. Yani şöyle olamaz;

imele:

goto imele; 

Eğer soracak olursanız biz bunu nerelerde kullanacağız nerede işimize yarayacak ? Ben pek kullanımına rast gelmedim pek fazla kullanılmıyor zaten ama kendi tecrübelerimle diyebilirim ki işe yaradığı zaman oluyor ben şahsen iki şekilde kullandım. Birincisi istediğiniz gibi yürümeyen bir kod bloğu vardır ve siz bu kod bloğunu tekrar yazmak istersiniz ama yürümeyen kod bloğunuzda ihtiyacınız olan şeylerde vardır yeni bir sayfa açmak, kod bloğunu silmek yada yorum satırı yapmak yerine bu ifadeyi kullanırsanız size biraz rahatlık sağlayabilir şahsen ben bu alanda çok kullanıyorum.

İkinci kullanım alanı ise switch-case yapılarında fazla kod varsa bu kodları daha temiz bir yerde yazarız ve koşul yapısına göre goto ifadesini kullanarak istediğimiz satıra gidip o satırda işlemlerimizi yaptırabiliriz.

<?php
$dosyaturu = 'image/jpeg';
$dosyauzantisi = ".jpg";
if($dosyaturu != "image/jpeg" and $dosyaturu!=".jpg" or $dosyaturu != ".png"){
  echo 'Dosyanın türü resim ve uzantısı png yada jpg olmalıdır';
}else{
  echo'sunucuya resim yükleme işlemleri';
}

Şöyle yukarıdaki gibi bir kod bloğumuz olsun. Senaryomuz sunucuya(sitemize) resim yüklemek. Fakat resim yüklerken kullanıcı resim değilde başka bir dosya yüklemeye çalışabilir ve sitemiz için gerekli olacak öngördüğümüz uzantıda resim dosyalarını sisteme kaydetmek istiyoruz. İşte bunları önce kontrol ettirip daha sonra sunucuya resmimizi yükleriz.

Fakat yukardaki kod bloğunda koşul hatası var .jpg de gelse .png de gelse hata olacaktır. Eğer benim php mantıksal operatörler yazımı okuduysanız orada if koşullarında birden fazla koşul sıraladığımızda parantezleri kullanın demiştik. Neyse daha fazla uzatmayayım konumuz goto ifadesi ben bu örneğin çalışmadığını anladım fakat bu örneğide silmek istemiyorum öyleyse goto kullanalım.

<?php
 
$dosyaturu = 'image/jpeg';
$dosyauzantisi = ".jpg";

goto burayaAtla;

//çalışmayan bloğumuz
if($dosyaturu != "image/jpeg" and $dosyaturu!=".jpg" or $dosyaturu != ".png"){
  echo 'Dosyanın türü resim ve uzantısı png yada jpg olmalıdır';
}else{
  echo'sunucuya resim yükleme işlemleri';
}
///çalışmayan bloğumuz

burayaAtla:
if(($dosyaturu != "image/jpeg") and (($dosyaturu!=".jpg") or ($dosyaturu != ".png"))){
  echo 'Dosyanın türü resim ve uzantısı png yada jpg olmalıdır';
}else{
  echo'sunucuya resim yükleme işlemleri';
}
sunucuya resim yükleme işlemleri

Goto ifadesini bu şekilde kullanabilirsiniz tabi bu küçük bir örnek bunun için goto ifadesine ihtiyaç duymayabilirsiniz. Daha çok daha büyük kod bloklarında işe yarar.

<php
$isim = "ahmet";

switch ($isim) {
case $isim == "akif" :
  goto akif;
break;
case $isim == "yunus" :
  goto yunus;
break;
case $isim == "kartal" :
  goto kartal;
break;
case $isim == "ahmet" :
  goto ahmet;
break;
default:
   goto varsayilan;
}

akif:
 echo "İsim değeri akif'e eşit";
 exit();
yunus:
 echo "İsim değeri yunus'e eşit";
 exit();
kartal:
 echo "İsim değeri kartal'a eşit";
 exit();
ahmet:
 echo "İsim değeri ahmet'e eşit";
 exit();
varsayilan:
 echo "İsim değeri girilen hiçbir koşulda bulunamadı.";
 
İsim değeri ahmet'e eşit

Basit bir örnek tabi buda küçük bir örnek daha büyük ve karmaşık kodlarda işe yarayacaktır. exit(); fonksiyonuyla phpnin kodu okumasını bıraktırabilirsiniz yani aşağıdaki kodları okumayacaktır exit(); fonksiyou olmazsa aşağıdaki satırlar imlenmişse bile okur çünkü goto imlenen satıra gider ve devamını okur.

Php goto atlamalı koşul ifadesi yazımızı burada sonlandırıyoruz.

Php Koşullu İfadeler hakkında daha fazla bilgi için php ‘nin sitesini ziyaret edin.

Bir sonraki php try catch makalemizde görüşmek dileğiyle.

E-bültene Abone Ol Merak etmeyin. Spam yapmayacağız.

Yazar

İşim Yok Hobilerim Var

İlgili Yazılar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Hızlı yorum için giriş yapın.

Başka Yazı Yok

Kayıt Ol

Zaten üye misiniz? Giriş Yap

Giriş Yap

Henüz üyeliğiniz yok mu? Kayıt Ol