Php Öğreniyorum 1 - Başlarken
-Alıntı-
Php Öğreniyorum 1 - Başlarken (Sayfa:1)
Bir zamanlar proje ekibi için yazdığım dersleri burada yayınlıyorum. Birçok kişinin işine yarayacağına eminim.
Herhangi bir HTML editörü (Frontpage, dream..vs) olmadan kodlara bakarak bazı şeyleri değiştirebilmeniz önemli. Bir sitenin kaynak kodunu açtığınızda o kodlara sanki bir düşmanmış gibi bakmamanız lazım.
PHP aslında çok basit bir dildir. Biraz zaman ayırmak ve örnekleri kendi kendinize denemeler yaparak, hatta örnekleri değiştirip uygulastarhackz.comstarhackz.comstarhackz.comstarh ackz.comstarhackz.com yapmak size en kısa zamanda PHP dilini öğretecektir.
PHP bir script dilidir. Yani .exe yada .com uzantısına sahip programlar gibi derlenmesine gerek yok. Ancak PHP scrptlerinizi çalıştırabilmeniz için bu dilden anlayan bir programa ihtiyacınız var.Bu programın web server tarafından çalıştırılabilir olması gerekmektedir. Başka bir ifadeyle web server programınızı (Apache, PWS yada ISS gibi) PHP anlar hale getirmeniz gerekmektedir.
Evet gelelim PHP ile bilgi vermeye.
PHP kodları arasına yada arasına yazılır. Ben birinci şekli tavsiye ederim. İlerde XML ile ilgilenirseniz yabancılık çekmezsiniz. Çünkü XML kodları arasında yazılır. PHP kodu içerisinde php kodu kullanmak için en basit olarak echo kullanılır. Buna örnek vererek ilk kodumuzu yazalım.
Kod
echo "
Saykonet merhaba!";
?>
Bu kodu merhaba.php olarak kaydedin ve sonucu gözlemleyin.
Size farklı bir php yazma şekli göstereceğim ama bu şekli tavsiye etmem. Sadece bilmenizi istedim. Olurda karşılaşırsanız şaşırmayın. İşte kod:
Kod
Bu kodu merhaba2.php olarak kaydedin ve sonucu gözlemleyin. Sonucun aynı olduğunu göreceksiniz. Yalnız aklınıza takılabilir. Bu şekilde kullanırsam server kodları işlemek yerine browsera göndermez mi diyebilirsiniz. Kesinlikle hayır. j a v a s c r i p t, VBScript browserda yorumlanır ama PHP, ASP, CGI ve ColdFusion serverda yorumlanır. Ortaya çıkan sonuç saf HTML olarak browsera gönderir.
========================================
Peki PHP kodları içinde nasıl yorum ekleyeceksiniz? Öncelikle "Yorum ne işe yarar?" sorusunu cevaplayalım. Yorum kodlara açıklama eklemek için kullanılr. Bunun yapılmasının sonucunu daha önce yazdığı kodlara daha sonra baktığınızda göreceksiniz. Bazen yorum satırlarında copyright bilgileri verilir. Buna bir örnek vermek gerekirse phpnuke kodlarında dikkat ederseniz ilk satırlarda şu yazı yer alıyor.
PHP-NUKE: Advanced Content Management System
============================================
Copyright (c) 2002 by Francisco Burzi
PHP-Nuke
This program is free software. You can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License.
Bu yazıyı kodun içerisine eklemek için yorum işaretlerine ihtiyaç var. Aksi takdirde PHP kodları çalışmaz. Yorum işaretleri şunlar: /* */, # ve // . Bu işaretleri bir örnekle açıklayayım.
Kod
// Bu phpnin tek satırlı yorum işareti
// Bu satır php yorumlayıcısı tarafından dikkate alınmaz.
echo "İlk yorum işareti açıklandı.
";
# Bu işarette yine bir yorum işareti
# Bu satır da php yorumlayıcısı tarafından dikkate alınmaz.
echo "PHPnin yorum işaretlerinden biri olan # işaretinin başında bulunduğu satır php yorumlayıcısı tarafından dikkate alınmaz.
";
/* Bu işarette phpnin çok satırlı yorum işareti
bu işareti kapatmadan istediğiniz kadar yorum yazabilirsiniz
Buraya istediğiniz yorum yazabilirsiniz */
echo "Yorum işaretlerini anlamışsınızdır umarım.";
?>
-----------------------
Php Öğreniyorum 2 - Yazım Kuralları
Önceki dersimde PHP diline kısa bir başlangıç yapmıştım. Bu derste ise PHP yazım kurallarına değineceğim. Bu üzerinde durmamız gereken en önemli konudur. En çok hata yapma nedeni bu yazım kurallarını bilmemekten kaynaklanıyor.
PHP'de herhangi bir yazıyı ekrana yazdırmak için 3 (üç) komut vardır. Bunlar echo, print, printf komutlarıdır. printf komutunun başka özellikleri de var. Ancak bu konuya daha sonra değineceğim. E nçok kullanılan echo ve print komutlarıdır.
Kod
1: 2: echo "Merhaba Millet";
3: ?>
kodunu inceleyelim. 1. satırda
ile PHP dosyamızın bittiğini belirttik. Kodlardan 2. satırda ekrana yazı yazdırmak için echo kullandık. Bunun yerine print komutunu da kullanabiliriz.
Kod
1: 2: print "Merhaba Millet";
3: ?>
2. satırı tekrar inceleyelim. echo ile ekrana yazı yazdıracağımızı söyledik. "" (çift tırnak) işaretleri arasına da ekranda gösterilecek yazımızı yazdık. Metinler tırnak işaretleri arasında yazılmalıdır. En sondaki ; (noktalı virgül) ile de echo komutumuzun bittiğini belirttik. Eğer ; işaretini kullanmazsak PHP yorumlayıcı echo komutunun bittiğini anlayamaz.
Kod
1: 2: print 'Merhaba Millet';
3: ?>
Buradaki 2. satırda ise çift tırnak(") yerine tek tırnak (') kullandık. Bu şekildeki kullanımda da yine ekranda Merhaba Millet yazacaktır. Tek tırnak kullanmak ile çift tırnak kullanmak arasında farklar vardır. Bunlara daha sonra değineceğim. Şöyle toplu bir örnek vereyim.
Kod
1: 2: echo "Merhaba Millet";
3: print "Merhaba Millet";
4: echo 'Merhaba Millet';
5: print 'Merhaba Millet';
6: ?>
Kodunu yazıp çağırdığımızda yan yana 4 adet Merhaba Millet yazısı çıkacaktır. 2., 3.,4. ve 5. satırlara dikkat ederseniz komutun bittiğini ; işaretiyle her seferinde belirttim.
Peki echo, print içerisinde HTML komutları kullanılabilir mi? Elbette kullanılabilir. İşte dikkat burada başlıyor.
Kod
echo "
Merhaba Millet
";
?>
Şeklindeki bir komutla Merhaba Millet yazısını ortada yazdırdık.
Normal HTML şekli şu şekilde olmalıydı.
Kod
Merhaba Millet
Ancak biz PHP de bunu yazarken echo da
Kod
Merhaba Millet
şeklinde kullandık. Bu şekildeki kullanımda doğrudur ancak biz yine kurallara göre yazalım. Örneğimizi aşağıdaki şekle getirelim ve çalışıp çalışmadığına bakalım.
Kod
echo "
Merhaba Millet
";
?>
Sizce bu çalışır mı? Hayır çalışmaz hata verir. Neden hata verir açıklayayım.
echo "
Merhaba Millet
"; kodundaki kalın yazan yere dikkat edin. PHP iki çift tırnak işareti içerisini okur. Yani ilk iki tırnak işaretini algılar. Komutun bittiğini ; (noktalı virgül) ile belirttiğimizden echo "
Merhaba Millet
';
şekline getirirsek hata vermez. Ancak ileri de anlatacağım değişkenleri tek tırnak içerisinde gösteremeyiz. Tek tırnak için değişken göstermeye çalıştığınızda PHP o değişkeni yazı olarak algılar ve değişkeni yazı olarak ekranda gösterir.
Burada dikkat edilmesi gereken nokta
Merhaba Millet
komutundaki çift tırnak yerine tek tırnak kullandığımızda yine hata verir.
2. Özel karakter olarak kullanılan simgeleri anlamsızlaştırmak:
Kod
echo "
Merhaba Millet
";
---------------
Php Öğreniyorum 2 - Yazım Kuralları
şeklinde ki kullanım buna örnektir. Dikkat ederseniz
bölümünde " çift tırnak işaretinden önce \ işaretini kostarhackz.comstarhackz.comstarhackz.comstarhackz .comstarhackz.com çift tırnağı anlamsızlaştırıyoruz.
*****
echo ile bir yazı yazdırmaya başladık diyelim. Yazımız uzun bir metin olsun.
Microsoft, uzun bir süredir beklenen Internet Explorer Web tarayıcısının son sürümünü sonunda kullanıcılara sundu. Güvenlik alanında pek çok yeniliği barındıran Internet Explorer 7, İnternet´te sörf yapmayı kolaylaştıran özellikler de içeriyor. Internet Explorer 7´nin bir önceki sürümü olan Internet Explorer 6, Ağustos 2001´de piyasaya sürülmüştü.
Uzun bekleyiş sona erdi ve Microsoft, sonunda Internet Explorer 7yi piyasaya sürerek 5 yıllık bir aradan sonra Internet Explorer Web tarayıcısı için en büyük güncellemeyi yaptı. Internette güvenli ve etkili bir sörf için en son güvenlik güncellemelerini ve kullanım fonksiyonlarını içeren Internet Explorer 7, yokluğu boyunca geçen sürede kaybettiği itibarını yeniden toparlamasını sağlayabilecek pek çok yeniliğe sahip.
Bu yazıyı PHP de echo ile yazdıracağız. Ancak her satırı ayrı ayrı yazmak istiyorum.
Kod
echo "Microsoft, uzun bir süredir beklenen Internet Explorer Web tarayıcısının son sürümünü sonunda kullanıcılara sundu. Güvenlik";
echo "alanında pek çok yeniliği barındıran Internet Explorer 7, İnternet´te sörf yapmayı kolaylaştıran özellikler de içeriyor. Internet";
echo "Explorer 7´nin bir önceki sürümü olan Internet Explorer 6, Ağustos 2001´de piyasaya sürülmüştü.";
echo "
";
echo "Uzun bekleyiş sona erdi ve Microsoft, sonunda Internet Explorer 7yi piyasaya sürerek 5 yıllık bir aradan sonra Internet Explorer";
echo "Web tarayıcısı için en büyük güncellemeyi yaptı. Internette güvenli ve etkili bir sörf için en son güvenlik güncellemelerini ve";
echo "kullanım fonksiyonlarını içeren Internet Explorer 7, yokluğu boyunca geçen sürede kaybettiği itibarını yeniden toparlamasını";
echo "sağlayabilecek pek çok yeniliğe sahip.";
?>
Bu şekilde bir yazım yapabilirsiniz yada hepsini tek echo içerisinde yazabilirsiniz.
Kod
echo "Microsoft, uzun bir süredir beklenen Internet Explorer Web tarayıcısının son sürümünü sonunda kullanıcılara sundu. Güvenlik alanında pek çok yeniliği barındıran Internet Explorer 7, İnternet´te sörf yapmayı kolaylaştıran özellikler de içeriyor. Internet Explorer 7´nin bir önceki sürümü olan Internet Explorer 6, Ağustos 2001´de piyasaya sürülmüştü.
Uzun bekleyiş sona erdi ve Microsoft, sonunda Internet Explorer 7yi piyasaya sürerek 5 yıllık bir aradan sonra Internet Explorer Web tarayıcısı için en büyük güncellemeyi yaptı. Internette güvenli ve etkili bir sörf için en son güvenlik güncellemelerini ve kullanım fonksiyonlarını içeren Internet Explorer 7, yokluğu boyunca geçen sürede kaybettiği itibarını yeniden toparlamasını sağlayabilecek pek çok yeniliğe sahip.";
?>
Bu şekilde bir yazım da yapılabilir. Ben ilk örneği şu hale getireceğim şimdi.
Kod
echo "Microsoft, uzun bir süredir beklenen Internet Explorer Web tarayıcısının son sürümünü sonunda kullanıcılara sundu. Güvenlik"
."alanında pek çok yeniliği barındıran Internet Explorer 7, İnternet´te sörf yapmayı kolaylaştıran özellikler de içeriyor. Internet"
."Explorer 7´nin bir önceki sürümü olan Internet Explorer 6, Ağustos 2001´de piyasaya sürülmüştü."
."
"
."Uzun bekleyiş sona erdi ve Microsoft, sonunda Internet Explorer 7yi piyasaya sürerek 5 yıllık bir aradan sonra Internet Explorer"
."Web tarayıcısı için en büyük güncellemeyi yaptı. Internette güvenli ve etkili bir sörf için en son güvenlik güncellemelerini ve"
."kullanım fonksiyonlarını içeren Internet Explorer 7, yokluğu boyunca geçen sürede kaybettiği itibarını yeniden toparlamasını"
."sağlayabilecek pek çok yeniliğe sahip.";
?>
Şimdi bu örneğimi açıklayayım. ilk satırda echo ile yazdırmaya başladım. Sonuna ; koymadım ve komutun devam ettiğini belirttim. Bir sonraki satırda echo yerine .(nokta) işaretini kullandım ve onu da ; işaretiyle bitirmeyerek komutun hala devam ettiğini belirttim. Aradaki satırlarda da bu şekilde devam ettim. Son satıra da . ile başlayıp ; ile bitirdim. Nokta (.) bir önceki komutun (echo) yerini aldı. Son satırda ; işaretini kullanmasaydım yine hata verirdi yada aradaki satırlarda ; işareti ile bir satırı bitirseydim başta başladığım echo komutu bitmiş olacaktı ve . işareti anlamsız bir hale gelecekti. Dolayısıyla yine hata verecekti. Yapılan en büyük hatalardan biri budur. Son örneği şu halde de yazabilirim.
Kod
echo "Microsoft, uzun bir süredir beklenen Internet Explorer Web tarayıcısının son sürümünü sonunda kullanıcılara sundu. Güvenlik"
."alanında pek çok yeniliği barındıran Internet Explorer 7, İnternet´te sörf yapmayı kolaylaştıran özellikler de içeriyor. Internet"
."Explorer 7´nin bir önceki sürümü olan Internet Explorer 6, Ağustos 2001´de piyasaya sürülmüştü.";
echo "
";
--------------------------
Php Öğreniyorum 2 - Yazım Kuralları
echo "Uzun bekleyiş sona erdi ve Microsoft, sonunda Internet Explorer 7yi piyasaya sürerek 5 yıllık bir aradan sonra Internet Explorer"
."Web tarayıcısı için en büyük güncellemeyi yaptı. Internette güvenli ve etkili bir sörf için en son güvenlik güncellemelerini ve"
."kullanım fonksiyonlarını içeren Internet Explorer 7, yokluğu boyunca geçen sürede kaybettiği itibarını yeniden toparlamasını"
."sağlayabilecek pek çok yeniliğe sahip.";
?>
Bu konudaki örnekleri çoğaltabilirim. Kısa bir özet yaparsak;
Her komut ; (noktalı virgül) işareti ile bitmelidir.
Çift tırnak ve tek tırnak kullanımı yerine göre seçilmelidir.
HTML komutları eklerken " çift tırnak işareti \ işareti ile anlamsızlaştırılmalıdır.
Ekrana yazı yazdırmak için echo yada print komutu kullanılır.
(nokta). işareti bir önceki komutun yerine geçebilir
Konuyu bütün anlattıklarımı içeren bir örnekle noktalıyorum.
Kod
//Ekrana yazı yazdırmak için echo ve print kullanılır.
echo "Ekrana echo komnutu ile yazı yazdırdım
";
print "
Bu yazıyı print ile yazdırdım ve ortalattım. Çift tırnakları anlamsızlaştırdım.
";
echo 'Burada tek tırnak kullandım. Böylece " işaretini yazıda kullanabilirim.
';
echo '
Tek tırnak ile başladığım için çift tırnağı kullanabilirim
';
echo "
HTML Komutu kullanıyorum.
";
echo "Bu satır alttan devam edecek. ; işareti ile bitirmiyorum"
."bu satıra nokta ile başladım. yani üst yazının devamı"
."bu da üst satırın devamı. ancak burada echo komutuna son veriyom. Çünkü yorum yazacam.
";
/* Araya yorum işareti sokuşturalım ki önceki konuyu tekrarlayın.
Böylece unutmamız zorlaşır. Yazdıklarımı okumayı unutmayın*/
#Bu da bir yorum satırı
echo "Bu satırın içinde yorum yazar gibi yapacam"
."/* Araya yorum işareti sokuşturalım ki önceki konuyu tekrarlayın."
." \"\"\"\"ÖRNEK BİTTİİİİ \"\"\"\"";
?>
Hadi bakalım html kodunuzu php ile yazabilecek misiniz? DENEYİN BİRAZ KOLAY BİSEY
---------------
Php Öğreniyorum 3 - Değişkenler
Yazım kurallarını öğrendiğinize göre PHP'ye asıl bir giriş yapalım.
Bu dersimde sizlere olmazsa olmaz, bilmezseniz trene bakar gibi bakacağınız en önemli konu olan değişkenleri anlatacağım. Ancak konuda çok fazla gereksiz detaya girmeyeceğim.
Değişken neye benzer? Bir bardak düşünün. Bardağa değişken diyelim. Bardağın içine ne koyarsanız koyun bardak bardaktır. Ancak değeri içine konulduğu şeydir. Yani su koyarsanız bardak değişkeninin değeri su olur, meyve suyu koyarsanız değeri meyve suyu olur, şarap koyarsanız değeri şarap olur Değişmeyen şey bardak ancak içine konulan şey sürekli değişiyor. İşte değişken dedikleri bu dur.
Değişkenleri yazmak için $ (dolar işareti - klavyede genel olarak alt gr+4 tuşlarına basarak çıkar) işareti kullanılır. Yani bir scriptte $ işaretini görürseniz bu bir değişkendir.
Tabii öyle kafanıza göre değişken yazamazsınız. Bunun da belli başlı kuralları vardır. Aslına bakarsanız 2 kural var. Değişken rakamla başlamaz ve değişken adında Türkçe harfler kullanılmaz. Neden rakam kullanılmaz ilerde başınıza gelirse anlarsınız
$deneme
$n2deneme
$isimsoyisim
$rakam
Bunlar birer değişkendir. Ancak sadece değişken. Bir değerleri yok. Bardak örneğinde olduğu gibi bunlar boş bardak gibidir. Bunlara değer atamak şu şekildedir.
$deneme="bu bir deneme";
$n2deneme="Tahribat";
$isimsoyisim="Aloryan Exirt";
$rakam=12345; yada $rakam="12345";
** rakam yada sayı yazarken "" işaretini kullanabilirsiniz yada kullanmayabilirsiniz. Bu size bağlı. Ancak bazı işlemler esnasında tırnak kullanmanız gerekebilir. Bunu ilerdeki konularda göreceğiz.
Soyut olarak gidiyorum ve sizin kafanız şu anda allak bullak oldu. Bunu sayfada nasıl gösteririz?
Kod
$adim="Aloryan Exirt";
$telefonum=123456;
echo "benim adım $adim ve telefon numaram $telefonum dır. Bana bu şekilde ulaşın";
?>
Eğer sadece değişkenin içeriğini yazdıracaksan echo daki "" işaretlerini yazmayabiliriz. Nasıl mı?
Kod
$adim="Aloryan Exirt ";
echo $adim;
?>
Burada önemli konulardan biri ise bazı özel karakterlerdir. "Benim yeni bilgisayarım 1000$dır" yazalım.
Kod
$degisken="\"Benim yeni bilgisayarım 1000\$dır\"";
echo $degisken;
?>
Dikkat ederseniz " işaretini kullanmak için \ ile etkisizleştirdim. $ işareti de özel bir işaret olduğundan (değişken tanımlamakta kullanıldığından) bunu da etkisizleştirmem lazımdı.
Ancak " işareti yerine ' kullansaydım o zaman değişkenler ' içinde anlamsız olduklarından etkisizleştirmeye gerek olmayacaktı.
Kod
$degisken=' "Benim yeni bilgisayarım 1000$dır" ';
echo $degisken;
?>
Bazen değişken öldürmemiz yani içini boşaltmamız gerekir. Bu durumda değişkene NULL değerini atarız. Değişken ölmüş olur. (öldüren helvasını yapar ona göre)
Kod
$adim="Aloryan Exirt";
echo $adim; //Aloryan Exirt yazar
$adim=NULL; //Değişkene yeni değer atacam işim bitti. Öldürdüm değişkeni.
$adim="Aloryan Exirt ";
echo $adim;
?>
yada değişkeni yok etmek için unset kullanırız. Örnek şu şekilde.
Kod
$adim="Aloryan Exirt";
echo $adim; //Aloryan Exirt yazar
unset($adim);
$adim="Aloryan Exirt";
echo $adim;
?>
-------------------
Php Öğreniyorum 3 - Değişkenler
Gördünüz mü? Bu konu ne kadar basit. Birkaç ayrıntı var onlara dikkat edin yeter.
Son olarak \$ \" gibi işaretler kullandım. Genel olarak şunlar vardır. Size yazayım da aklınızda bulunsun.
\' Tek tırnak
\" Çift tırnak
\\ ters slash
\$ dolar işareti
HTML ÖNİZLEMEDE ŞOV YAPMAK İÇİN
\n HTML önizlemede yeni satır yapar.
\r HTML önizlemede satır başı yapar.
\t HTML önizlemesinde tab yani sekme yapar. Hani klavyede varya o tuşun görevi.
Örnek:
Kod
echo " deneme 1
";
echo " deneme 2
";
echo " deneme 3
";
echo " deneme 4
";
?>
Kodu yazın ve browserda açarak sayfa kaynağına bakın.
deneme 1< br> deneme 2< br> deneme 3< br> deneme 4< br>
Gibi görülecektir. Bu da hiç hoş bir görüntü olmaz. Biz ustayız kaynağa bakınca böyle görülmesi karizmayı yerlerde süründürür. Biraz şekil verelim.
Kod
echo " deneme 1
\n";
echo "\t deneme 2
\n";
echo "\t\t deneme 3
\n";
echo "\t\t\t deneme 4
\n";
?>
Böyle yapınca ne olur bir bakın bakalım kaynak kodlara Bize de bu yakışır değil mi??
Benden değişkenler şimdilik bu kadar. Herkes adını, mesleğini değişken içinde kullanıp ekranda göstersin bakalım.
----------------
Php Öğreniyorum 4 - Matematik ve Mantık İşlemleri
Bir başlangıç yaptım, yazım kurallarına değindim, değişkenleri anlattım. Adım adım ön bilgileri vermeye devam ediyorum. Şimdi ki konumuz çok fazla ayrıntılı değil ancak bu da ilerde yazacağımız kodlar için ön bilgi niteliğinde. İyi anlamaya çalışın.
VERİ TÜRLERİ
PHP açısından altı tür değer vardır. Bunlar;
Integer : 52364, 1,301 gibi.
Double : 3,59 gibi
String : Tahribat gibi.
Boolean: true / false gibi.
Object ve Array.
Veri türlerini bilmek neden önemli derseniz PHP ile toplama yada çıkarma yaparken anlarsınız diyeceğim. Çünkü siz PHP 'ye 2 ile 3'ü topla dersiniz ama sonucu 5 göstereceği yerde 23 olarak gösterirse neden bahsettiğimi anlarsınız.
Değişkenlere atadığımız verinin türünü genelde biliriz. Ama çok satırlı bir program yazacaksak değişkenlere atadığımız verinin türünü unutabiliriz. Bu da ilerde istemediğimiz sonuçlara yol açar. Örneğin bir yerde $a değişkeni tanımlar ve değer olarak sayısal 123 değerini verebiliriz. Daha sonra $b değişkenini tanımlar ve değer olarak 456 değerini verebiliriz. Bu tanımlamayı bir fonksiyonda yapıp sonuçta bir toplama işlemi yaptırabiliriz. Ancak başka bir fonksiyonda yine $a ve $b değişkenlerini tanımlayıp bu defa değer olarak sayı değilde string atayabiliriz. Burada toplama yaptırabiliriz ama sayılarda olduğu gibi bir toplam değil de birleştirme için yaparız. Buna şöyle bir örnek vereyim. $a değeri "Aloryan" ve $b değeri ise "Exirt" olsun. Burada değişkenlere atadığımız verinin türü string'tir. Burada bir toplama işlemi yaparak ortaya Aloryan Exirt yazısını çıkartabiliriz. Yani anlayacağınız üzere verinin türü çok önemli oluyor. Bu konuyu ilerde yapacağımız uygulamalara kadar burada bırakıyorum. Uygulamalarda veri türünü ne kadar önemli olduğunu anlayacaksınız.
MANTIKSAL VE MATEMATİK İŞLEMLERİ
Matematik:
+ (Toplama),
- (çıkartma),
/ (Bölme),
* (Çarpma) ve biraz ileri düzey bir işlem
% (Modules).
Şimdi hemen bir toplama işlemi yapan basit bir şey yazalım.
Kod
$a=2;
$b=1;
echo "$a+$b";
Mantık İşlemleri ise şunlar:
= = eşitse,
!= eşit değilse,
= = = aynı ise, (Daha kullanmadım Very Happy )
> büyükse,
< küçükse,
<= küçükse veya eşitse,
>= büyükse veya eşitse.
Ayrıca;
|| veya; or veya;
&& ve; and ve;
Xor özel veya;
! değil.
Şimdi de bir örnek yapalım ve konuyu tamamlayalım.
Örnek olarak hemen aklıma üniversitede uğraştığımız ve hesaplama yapmaktan insanı canından bezdiren ders geçiş sistemi geldi. Şimdi ben şöyle bir örnek veriyorum. Diyelim ki, dersten geçiş sınavları iki vize ve bir final şeklinde olsun. Dersten geçmek için ise; vize ortalamasının yüzde 30'u ile final notunun yüzde 70 nin toplamı 50 den büyük olmalı ve final notununda en 50 olması şartı olsun. Buna göre dersten geçip geçmediğinizi bir programla hesaplatalım. Programı tamamen yazıyorum.
Kod
// önce notların değişkenlerini tanımlayalım.
$vize1=10;
$vize2=10;
$final=100;
// Şimdi de işlemleri yapalım.
$vize_ortalama=($vize1 + $vize2)/2;
$yuzde30=$vize_ortalama/100*30;
$yuzde70=$final/100*70;
$toplam=$yuzde30+$yuzde70;
echo "Vize 1 Notu: $vize1
";
echo "Vize 2 Notu: $vize2
";
echo "Final Notu: $final
";
echo "Vize Ortalama: $vize_ortalama
";
echo "Vizenin yüzde 30'u: $yuzde30
";
echo "Finalin yüzde 70'i: $yuzde70
";
echo "Toplam: $toplam
";
// koşulları kontrol edip sonucu yazdıralım.
// Şart işlemlerini bir sonraki derste işleyeceğim.
if(($final>=50) && ($toplam>=50)) {
echo "Tebrikler! Dersten geçtiniz!";
} else {
echo "Dersten kaldınız!";
}
?>
Kodda şu ana kadar öğrendiğiniz herşeyi kullanmaya çalıştım. Bu arada bir sonraki derste anlatacağım şart işlemlerine de basit bir giriş yaptım. Bu kod daha basit ve kısa olabilirdi. Ancak amacım sizlere daha önceki derslere de gönderme yapmak ve yazıları pekiştirmekti. Siz bu kodda vize ve final notlarını değiştirin ve sonucu gözlemleyin.
----------------
Php Öğreniyorum 4 - Matematik ve Mantık İşlemleri
Bu konu o kadar zor bir konu değil. Bu nedenle üzerinde fazla durmadım.
Konuya bazı fonksiyonlar ile devam ediyorum.
Mutlak Değer Fonksiyonu: abs()
Kod
echo abs(-10);
?>
Anlamı şu şekilde. Eğer matematik dersine öcü gibi bakmadınızsa |-10| =10 ifadesine karşılık gelir. Bir örnek daha;
Kod
echo abs(10/25-47);
?>
Yuvarlama Fonksiyonları: floor(), ceil(), round()
floor: Bir bölme yada çarpma işleminde çıkan sonucu aşağıya doğru yuvarlar ve öyle gösterir.
ÖRNEK:
Kod
echo floor(100/26); //Ekrana kaç yazdırır söyleyin bakalım?
ceil(): Bu komut ise floor komutunun tam tersini yapar. Yani bir üste yuvarlar.
ÖRNEK:
Kod
echo ceil(100/26); //Sizce ekrana bu defa kaç yazacak?
round(): Bir işlemden çıkan ondalıklı sonuçlar; 0,5 ve üzeri bir rakamsa bir üst rakama, eğer 0,5 dahil değilse bir alttaki sayıya yuvarlar. //Kabul tam cümle olmadı Very Happy
Kod
echo round(15.5);
echo round(15.2);
echo round(15.7);
En büyük ve en küçük Fonksiyonları: max() ve min()
Dizi değişkenlerde (array) kayıtlı bilgilerden en büyük değeri ve en küçük değeri bulmak için kullanırız.
ÖRNEK:
Kod
$sayilar=array(
a=>50,
b=>120,
c=>42,
d=>1,
e=>51,
f=>17
);
echo En Büyük Değer:.max($sayilar);
echo
;
echo En Küçük Değer:.min($sayilar);
Örnekte yer alan array için henüz acele etmeyin. İleriki konularda bunu detaylıca anlatacağım.
Aklıma gelenler şimdilik bunlar. Sormak istediğiniz matematik fonksiyonu olursa sorabilirsiniz. Daha çok varda en çok ben bunları kullanıyorum. Sinüs, consinüs, logaritma,üstsel ifadeler,sayı sistemleri dönüştüren fonksiyonlar.. Bunlara isterseniz yer vereyim.
ÖNEMLİ: PHP de matematiksel işlem yaparken ondalık rakam kullanacağınızda ondalığı ayırmak için nokta (.) işaretini kullanmalısınız. Nokta yerine virgül kullanırsanız hata verecektir. Yani 0.5 doğru yazım şekli, buna rağmen 0,5 hatalı yazım şeklidir.
----------------------
PHP Geniş Anlatım 3
Php Öğreniyorum 5 - Program Denetleme İşlemleri
Geldik en önemli konulardan birine. Daha önceki dersleri düzenli takip edenler bu derste fazla yorulmayacaklardır.
IF Komutu:
PHP dilinde en çom kullanılan denetleme komutlarındandır. Türkçe karşılığı "eğer" dir.
Programa bir şart koyarız. Eğer girilen değer şu ise şunu yap, eğer girilen değer bu ise şu komutları yap, eğer değer yoksa bunları yap.
KULLANIMI:
if(yapılması istenen koşullar,şartlar neyse) {
şartların yada koşullar şartı karşılıyorsa şunu yap
}
ÖRNEK:
Kod
if(1<2) {
echo "1, 2 den küçüktür";
}
Yada bir önceki derse göre örneğimizi değiştirelim.
Kod
if(1<2 && 3>2) {
echo "1, 2 den küçük ve 3, 2 den büyüktür.";
}
NOT: Bu örnekte && yerine AND de kullanılabilir. Arada bir fark yoktur.
Bir örnek daha vereyim.
Kod
if((3==3) OR (4<3)) {
echo "Ya 3, 3 e eşittir. Yada 4, 3 ten küçüktür.";
}
ELSE: Bu komut denetlenmekte olan bir koşulun yanlış olması durumunda yapılacak olan komutları belirler. if ile beraber kullanılır.
ÖRNEK:
Kod
if(5==5) {
echo "5 ile 5 birbirine eşittir";
} else {
echo "5 ile 5 birbirine eşit değildir";
}
ELSEIF: Bir tane şart yetmezse aynı if içinde birden fazla elseif kullanabilirsiniz. Kullanım şekli şu şekildedir.
if(şartlar) {
şart uygunsa uygulanacak komutlar
} elseif(başka bir şart) {
başka şartın gerçekleşmesi durumunda uygulanacak komutlar
} else {
şartların hiçbiri tutmazsa uygulanacak komutlar
}
Evet şöyle kısa bir toparlayalım.
1-Bir if komutu kullanmak için sadece if kullanabilir. Diğerlerini kullanmaya gerek yoktur.
2-if kullanmadan else ve elseif kullanılamaz.
3-Bir if içinde istediğiniz kadar elseif olabilir.
Şimdi örneklere devam edeyim.
ÖRNEK 1:
Kod
//Değişkenleri tanımlayalım.
$ad="Aloryan";
$ortaad="Exirt";
$soyad="Tahribat";
//Değişken tanımlaması bitti. Şimdi şartlara başlayalım.
if($ad=="Aloryan") {
echo "Benim Adım $ad";
} elseif($ortaad=="Exirt") {
echo "Benim Adım $ad $ortaad";
} elseif($soyad=="Tahribat") {
echo "Benim Soyadım $soyad";
} else {
echo "Bir adını yazdıramadın be";
}
//Şartlarda bitti. Hadi görüşürüz. Diğer örneğe geçelim.
ÖRNEK 2:
Kod
//Değişkenleri tanımlayalım.
$ad="Aloryan";
$ortaad="Exirt";
$soyad="Tahribat";
//Değişken tanımlaması bitti. Şimdi şartlara başlayalım.
if($ad!="") {
echo "Benim Adım $ad";
} elseif($ortaad!="") {
echo "Benim Adım $ad $ortaad";
} elseif($soyad!="") {
echo "Benim Soyadım $soyad";
} else {
echo "Bir adını yazdıramadın be";
}
//Şartlarda bitti. Hadi görüşürüz. Diğer örneğe geçelim.
----------------------------------------
Php Öğreniyorum 5 - Program Denetleme İşlemler İ
ÖRNEK 3:
Kod
//Değişkenleri tanımlayalım.
$ad="Aloryan";
$ortaad="Exirt";
$soyad="Tahribat";
//Değişken tanımlaması bitti. Şimdi şartlara başlayalım.
if($ad=="Aloryan" && $ad!="") {
echo "Benim Adım $ad";
} elseif($ortaad=="Exirt" || $ortaad!="") {
echo "Benim Adım $ad $ortaad";
} elseif($soyad=="Tahribat" AND $soyad!="") {
echo "Benim Soyadım $soyad";
} elseif($ad!="" AND $soyad!="") {
echo "Benim adım $ad ve soyadım $soyad";
} else {
echo "Bir adını yazdıramadın be";
}
//Şartlarda bitti. Hadi görüşürüz.
Bakın size farklı if kullanım örneği vereyim. Görürseniz şaşırmayın.
1 tanesi şu şekilde;
if(şartlar):
şart doğru ise yapılacaklar
elseif(diğer şartlar):
diğer şartlar doğruysa işlem yapalım.
else:
koşullar doğru değilse burayı çalıştır.
endif;
Bir başkası da şu şekilde;
if(şartlar)
işlemi yap
Gelelim konuyu biraz zorlaştırmaya.
isset(): Bir değişkenin değeri olup olmadığına bakarız. Değeri varsa TRUE sonucunu verir, yoksa FALSE sonucunu verir.
Hemen örnekleyelim.
Kod
if(isset($ad)) {
echo "Değişkenin değeri var";
} else {
echo "Değişkende değer yok";
}
empty(): Aynı isset gibidir. Tek farkı ters çalışır. Yani değişkende değer varsa FALSE, değer yoksa TRUE değerini verir.
Kod
if(empty($soyad)) {
echo "Değişkenin değeri yok";
} else {
echo "Değişkende değer var";
}
Birde bunlarla ilgili farklı kullanımlar gözünüze çarpabilir. Bu kullanım şekli de şu şekildedir. Komutları birbirinin yerine kullanmak.
Kod
if(!isset($ad)) {
echo "Değişkenin değeri yok aynı empty() fonksiyonunda olduğu gibi.";
} else {
echo "Değişkende değer var";
}
YADA
Kod
if(!empty($soyad)) {
echo "Değişkenin değeri var isset yerine !empty kullanabiliriz.";
} else {
echo "Değişkende değer yok";
}
Bu örneklerde ! işareti anlayacağınız üzere değilse yada tersi demektir.
is_integer(): Değişkenin tam sayı olup olmadığını kontrol etmek için kullanırız.
Kod
$sayi="15.3";
if(is_integer($sayi)) {
echo "Değişkenin değeri TAM SAYIDIR";
} else {
echo "Değişken değeri tam sayı DEĞİLDİR";
}
Sonuçları tabii sizler deneyerek göreceksiniz.
NOT: Örneklerde işaretlerini kullanmadığımı görebilirsiniz. Daha önceki derslerde nasılsa şablonu verdim. Siz örnekleri denerken gerekli eklemeyi yaparsınız. Gerekli olmadığı sürece PHP başlangıç () ifadelerini kullanmayacağım.
Ders kısaca bu şekilde. Diğer denetleme komutlarına devam edeceğim. Şimdilik if öğreniyoruz. Örnek çıkarmakta zorluk çekenler için birkaç soru vereyim. Sorular önceki konuları da kapsayacak şekildedir. Siz bunları PHP kodu haline getirin. UNUTMADAN bilenler soruları cevaplamasın. Sadece yanlış yazıldığında neresi yanlış onu söyleyebilirler.
-------------
Php Öğreniyorum 5 - Program Denetleme İşlemler i
SORU 1: Okulda matematik sınavlarına girdim. Dersi geçebilmem için almam gereken notlar şu şekilde olmak zorunda. İLK sınav: 70, İKİNCİ sınav 50. Eğer bu notları ve üzerini sağlıyorsam program bana DERSİ GEÇTİN diyecek. Yoksa "DERSTEN KALDIN" diyecek. Bunu nasıl yapabilirim?
SORU 2: Elimde 3 tane değişken var. Bunlar ve değerleri sırayla şu şekilde.
$adim="Aloryan Exirt";
$soyadim="Tahribat";
$telefonum=2662456637;
1- Eğer telefon numaram boş değilse adımı ve soyadımı göster.
2- Eğer adım ve soyadım boş değilse telefon numaramı göster.
3- Eğer sadece adım boşsa telefonumu göster.
Bu işlemleri yapan programı nasıl yazarım?
SORU 3: Seyahat planları yapmaktayım. Cebimde 10.50 YTL param var. Bu paranın 5.25 YTL si ile bilet aldım. Geriye kalan para ile de yemek yedim. Cebimde hiç para kalmadı. Yemeğe ne kadar para verdim? Eğer yemeğe verdiğim para, bilet parasından fazlaysa ekrana "KAZIKLANDIN" değilse "NERDE BU UCUZ YER" yazsın. Bunu nasıl yaparım?
SORU 4: Bir satış scripti yapmak istiyorum. Satılan ürünler süreli ürünler. Bir ürün 1 ay, 3 ay, 6 ay yada 1 yıl gibi bir süreyle alınabiliyor. Eğer kişi o üründen 3 aylık alırsa %10, 6 aylık alırsa %20, 1 yıllık alırsa %40 indirim yapmak istiyorum. Bunu nasıl yapabilirim?
switch komutu
Aslında bunu PHP-Nuke kullanan arkadaşlar modüllerde görebiliyorlar. İşte şimdi bu modüllerde kullanılan komutu öğreniyoruz. Kısacası PHP dersleri sonunda sizlerde kendi blok ve modüllerinizi rahatlıkla yazabilecek ve/veya ufak sorunları çözebileceksiniz. İş mantığını öğrenmekte.
Bu komutta bir değişken oluşturulur ve değişik seçenekler oluşturulur. Bu değişken hangi seçeneğe uyuyorsa o komutlar yazılır.
NOT: Switch komutu yerine if komutu da kullanılabilir. Yani switch ile yaptığımızı if ile de yapabiliriz. Ancak ileriki derslerde göreceğiniz üzere switch komutu if komutuna göre biraz daha hızlı çalışır. Ama dikkat edelim, bütün if komutlarını switch ile yazamayız. Yani switch komutu if komutu yerine duruma göre kullanılabilir yada kullanılamaz. Bunu zamanla görürsünüz. Gelelim nasıl yazılır sorusuna.
switch($degisken) {
case "birinci şart":
bu şart doğru ise yapılacak komutlar
break;
case "ikinci şart":
bu şart doğru ise yapılacak komutlar
break;
..//bu şekilde uzatabiliriz. Limitimiz yok//
default: ##Buraya dikkat noktalı virgül değil iki nokta üst üste kullanıyoruz.##
yukarıda yazılan şartlardan hiçbiri yerine gelmiyorsa yapılacak komutlar
break;
}
Önemli bir ayrıntıya değineyim.
case ile yapılan her şart kontrolünden sonra break komutu ile sonlandırmamız gerekiyor. Sonlandırmazsak ne olur? Şart gerçekleşse bile şartın bitmediğini görmediğinden diğer şartları da dener ve sonuç oluşmaz. Sizde ortada kalırsınız Very Happy
Konuyu fazla uzatmadan basit bir örnek veriyorum.
Kod
switch($dil) {
case "PHP":
echo "PHP dilini öğreniyoruz";
break;
case "ASP":
echo "ASP dilini öğreniyoruz";
break;
case "Perl/CGI":
echo "Perl ile CGI programlama öğreniyoruz";
break;
default:
echo "Hiçbir dili öğrenmiyoruz. Boş boş oturuyoz";
break;
} //switch komutunu sonlandırmayı unutmayın.
Şimdi var mısınız basit bir modül yazalım? Uygulamaya başlıyoruz kemerlerinizi bağlayın Daha dur bir şey öğrenmedik ne modülü diyenleriniz olabilir. Bayağı bir şey öğrendik. Geri dönün ve dersleri tekrar edin.
Modüle başlamadan önce modüllerle ilgili ön bilgi vereyim.
Modüller PHP-Nuke ile yaptığınız sitede sayfalarınızı oluşturan eklentilerdir. Örneğin şu anda bu yazıyı okuduğunuz forum sayfası Forums modülüyle karşınıza gelmektedir. Modüllere 404 - Not Found şeklinde girersiniz. Modül Adı yerine modules klasöründeki, modülün klasörünün ismini (BÜYÜK-küçük harf ayrımına dikkat ederek) yazarız.
Öncelikle modules klasörüne PHP_Modul1 adında bir klasör ve içerisine boş bir tane index.php dosyası oluşturun. index.php dosyasını açın ve yazmaya başlıyoruz.
Kod
yazarak PHP komutunun başladığını belirtiyoruz. Modülümüzde 3 tane sayfa olacak. Bir tanesi giriş, 2 tanesi ise alt sayfa şeklinde. Hemen ilk yazılması gerekenleri yazıyoruz.
---------------------------
Php Öğreniyorum 5 - Program Denetleme İşlemler i
Kod
if ( !defined('MODULE_FILE') )
{
die("You can't access this file directly...");
}
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
Bunları yazdıktan sonra içeriğimizi yazalım.
Kod
switch($degisken) { //switch başladı...
// modules.php?name=PHP_Modul1°isken=php şeklinde link verdiğimizde çıkacak sayfa başladı....
case "php":
echo "PHP bir script dilidir. Yani .exe yada .com uzantısına sahip programlar gibi derlenmesine gerek yok. Ancak PHP scrptlerinizi çalıştırabilmeniz için bu dilden anlayan bir programa ihtiyacınız var.Bu programın web server tarafından çalıştırılabilir olması gerekmektedir. Başka bir ifadeyle web server programınızı (Apache, PWS yada ISS gibi) PHP anlar hale getirmeniz gerekmektedir.";
break;
// modules.php?name=PHP_Modul1°isken=php şeklinde link verdiğimizde çıkacak sayfa bitti.
//modules.php?name=PHP_Modul1°isken=html şeklinde link verdiğimizde çıkacak sayfa başladı...
case "html":
echo "Hyper Text Markup Language( Hiper Metin İşaret Dili ) kısaca HTML diye adlandırdığımız kodları anlatmaya çalışacağım.
Anlatıma başlamadan yapmış olduğum dil hatalarından dolayı özür dileyerek affınıza sığınıyorum..
Anlatıma 0 dan başlıstarhackz.comstarhackz.comstarhackz.comstarha ckz.comstarhackz.com profesyonele doğru ilerleteceğiz.Bu yazı dizimizde anlatılanları sizinde harfiyen uygulamanız gerekiyor diye düşünmekteyim....";
break;
//modules.php?name=PHP_Modul1°isken=html şeklinde link verdiğimizde çıkacak sayfa bitti...
#Modüle ilk girişte çıkacak sayfa başladı.
default:
echo "
Merhaba,
Bu benim ilk modül çalışmam. Modülüme hoşgeldiniz. Bir iki alt sayfa yaptım. Siz
bu alt sayfalara gönderecem. İlk sayfamız PHP üzerine kısaca bir yazı, ikinci
sayfamız ise HTML üzerine kısa bir yazı.
İlk sayfamıza gitmek için
tıklayın.
İkinci sayfamıza gitmek için
tıklayın.
NOT: switch komutunda $degisken adında bir değişken tanımladık.
Buna göre linkleri şu şekilde vermeliyiz.
PHP Sayfamıza modules.php?name=PHP_Modul1°isken=php
HTML Sayfamıza modules.php?name=PHP_Modul1°isken=html
";
break;
#Modüle ilk girişte çıkacak sayfa bitti.
}//switch bitti.
En modül bitti. Sonuna
Kod
?>
yazarak PHP nin bittiğini gösteriyoruz. Burada aklınıza takılan şeyler için önceki dersleri incelemenizi öneririm.
Modülün index.php dosyasını toplarsak şu hale gelmiş olacak.
Kod
if ( !defined('MODULE_FILE') )
{
die("You can't access this file directly...");
}
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
switch($degisken) { //switch başladı...
// modules.php?name=PHP_Modul1°isken=php şeklinde link verdiğimizde çıkacak sayfa başladı....
case "php":
echo "PHP bir script dilidir. Yani .exe yada .com uzantısına sahip programlar gibi derlenmesine gerek yok. Ancak PHP scrptlerinizi çalıştırabilmeniz için bu dilden anlayan bir programa ihtiyacınız var.Bu programın web server tarafından çalıştırılabilir olması gerekmektedir. Başka bir ifadeyle web server programınızı (Apache, PWS yada ISS gibi) PHP anlar hale getirmeniz gerekmektedir.";
break;
// modules.php?name=PHP_Modul1°isken=php şeklinde link verdiğimizde çıkacak sayfa bitti.
//modules.php?name=PHP_Modul1°isken=html şeklinde link verdiğimizde çıkacak sayfa başladı...
case "html":
echo "Hyper Text Markup Language( Hiper Metin İşaret Dili ) kısaca HTML diye adlandırdığımız kodları anlatmaya çalışacağım.
Anlatıma başlamadan yapmış olduğum dil hatalarından dolayı özür dileyerek affınıza sığınıyorum..
Anlatıma 0 dan başlıstarhackz.comstarhackz.comstarhackz.comstarha ckz.comstarhackz.com profesyonele doğru ilerleteceğiz.Bu yazı dizimizde anlatılanları sizinde harfiyen uygulamanız gerekiyor diye düşünmekteyim....";
break;
//modules.php?name=PHP_Modul1°isken=html şeklinde link verdiğimizde çıkacak sayfa bitti.
#Modüle ilk girişte çıkacak sayfa başladı.
default:
echo "
Merhaba,
Bu benim ilk modül çalışmam. Modülüme hoşgeldiniz. Bir iki alt sayfa yaptım. Siz
bu alt sayfalara gönderecem. İlk sayfamız PHP üzerine kısaca bir yazı, ikinci
sayfamız ise HTML üzerine kısa bir yazı.
İlk sayfamıza gitmek için
tıklayın.
İkinci sayfamıza gitmek için
tıklayın.
NOT: switch komutunda $degisken adında bir değişken tanımladık.
Buna göre linkleri şu şekilde vermeliyiz.
PHP Sayfamıza modules.php?name=PHP_Modul1°isken=php
HTML Sayfamıza modules.php?name=PHP_Modul1°isken=html
";
break;
#Modüle ilk girişte çıkacak sayfa bitti.
} //switch bitti.
?>
---------------------------
PHP Geniş Anlatım 4
Php Öğreniyorum 6 - Döngü İşlemler i
öngüleri size kısaca şöyle tanımlayayım. Diyelim bir veritabanınızda 1000 adet veri var ve bu verileri bir sayfada göstermek istiyorsunuz. Bunu en kolay olarak döngülerle sağlarsınız. Konu çok karmaşık değil, üstelik çok basit.
------------------------------------------------------------------
for ile döngü yapmak
for döngüsü bir şarta bağlı olarak istenen miktarda komutu yada veriyi tekrarlar. Yazım şekli basitçe söyledir.
for (değişken;şart;artma miktarı) {
şart uyuyorsa yapılacak komutlar
}
Şimdi bir örnek yazarak konuyu pekiştirelim. Yapacağım işlem programa 1-20 ye kadar saydırmak.
Kod
for($sayi=1;$sayi<=20;$sayi++) {
echo $sayi."-";
}
Gördüğünüz gibi çok basit. Kodları açıklayayım.
İlk satırda for döngüsüne başladım ve $sayi adında bir değişken tanımlayıp değerini 1 verdim. Sonrasında $sayi değişkeni 20 den küçük yada ona eşit olmalı dite bir şart koydum. Ve $sayi değişkeninin değerinin birer birer artmasını sağladım.
İkinci satırda ekrana yazdırmasını söyledim. Son satırda ise for döngüsünü kapattım.
$sayi++ demek $sayi değişkenini 1 arttır demektir. Yani $sayi=$sayi+1; değilde $sayi++; kullanabiliriz.
Ya hep böyle mi yazmak lazım, ben başka kodlarda gördüm diyenleriniz olabilir. Elbette hep bu şekilde bir yazım gerekmez. Aynı örneği farklı şekillerde yazayım.
2. YAZIM
Kod
for($sayi=1;$sayi<=20;$sayi++): // iki nokta üst üste var dikkat.
echo $sayi."-";
endfor;
3. YAZIM
Kod
for($sayi=1;$sayi<=20 { //Yazıma dikkat. Kullanılmayan yerine ; kullandım.
echo $sayi."-";
$sayi++;
}
4. YAZIM
Kod
for($sayi=1;$sayi<=20; print $sayi."-", $sayi++);
//Dikkat print yerine echo kullanılamaz.
5. YAZIM
Kod
$sayi=1;
for(; {
if($sayi>20) {
break;
}
echo $sayi."-";
$sayi++;
}
6.YAZIM
Kod
For($sayi=1;;$sayi++) {
if($sayi>20) {
break;
}
Echo $sayi."-";
}
Aklıma gelenler bunlar. Hangisi hoşunuza giderse onu kullanın. Ben hangi şekli kullanıyorum diye merak ederseniz programın akışına göre hangisi uygunsa onu kullanıyorum. For döngüsü bu kadar.
SORU: 2 den 100 e kadar ikişer ikişer yazdırın bakalım.
------------------------------------------------------------------
While ile döngü yapmak
Kodlara az çok bakanlar bunu sık sık görmüşlerdir. Veritabanındaki verileri ekrana yazdırıyoruz. En çok kullanılan döngülerden biridir. Bir şartın gerçekleşmesi yada gerçekleşmemesi durumunda döngü çalışır.
Altını çizerek belirteyim ki; döngülerde en dikkat edilmesi gereken şey döngünün sonsuz döngüye sokulmaması gerektiğidir. Çünkü döngüler şart gerçekleşinceye kadar tekrarlanır.
Yazım şekli basitçe şu şekildedir.
while(şart) {
şart uygunsa yapılacak komutlar
}
yada
while(şart):
şart yerine geldiyse yapılacak komutlar
endwhile;
--------------------
Php Öğreniyorum 6 - Döngü İşlemler i
Şimdi for döngüsü ile yaptığımız örneği while ile yapalım.
Kod
$sayi=1;
while($sayi<=20) {
echo $sayi."-";
$sayi++;
}
Gördünüz mü for döngüsü ile arasında bir farkı yok. Örneği açıklayayım kafanız bulanmasın.
İlk satırda $sayi=1; ile $sayi adlı değişkenimize 1 değerini verdik. İkinci satırda döngüyü başlatarak şartımızı belirledik. 3. satırda ekrana yazdırdım. 4. satırda yine bir arttır dedik ve sonunda döngüyü kapattık.
Evet şimdi while ile başka bir örnek vereyim.
Kod
echo " ";
$dongu=0;
while($dongu<20) {
$sayi=5+$dongu;
echo "
$dongu
+
5
=
$sayi
";
++$dongu;
}
echo " ";
Evet biraz farklı bir şey yaptım. Şimdi de başka bir örnek;
Kod
echo " ";
$basla=1;
while($basla<=10) {
$sayi=5*$basla;
echo "
$basla
x
5
=
$sayi
";
$basla++;
}
echo " ";
While ile işimiz bu kadar. SQL sorgularında kullanım için SQL derslerini beklemelisiniz.
------------------------------------------------------------------
do ... while döngüsü
Bu döngüyü şöyle açıklayayım. Bazen öyle bir durumla karşılaşırız ki, döngüde yer alan şartın gerçekleşmemesi durumunda bile döngünün bir kere çalıştırılması gerekebilir. Neden bahsediyom ben şimdi anlarsınız.
Yazım şekli şöyledir.
do {
Şart uygunsa yapılacak komutlar
}
while(şart);
Off yine kafanız karıştı değil mi? for ve while kullanırken yazdığımız örneği bununla yazalım mı?
Kod
$sayi=1;
do {
echo $sayi."-";
$sayi++;
}
while($sayi<=20);
Şimdi bunun diğer döngülerden farkı nedir? Dikkat ederseniz önce işlem yapıyor sonra şartı kontrol ediyor. Şartı while($sayi<=20); ile sınıyor. Bakın şimdi sonraki şartı değiştirelim ve şu hale getirelim.
Kod
$sayi=1;
do {
echo $sayi."-";
$sayi++;
}
while($sayi<1);
Birde bu şartı koyduğumuz for döngüsü yazalım.
Kod
for($sayi=1;$sayi<1;$sayi++) {
echo $sayi."-";
}
-------------------------
Php Öğreniyorum 6 - Döngü İşlemler i
İkisini ayrı ayrı deneyin.
İlkinde $sayi değişken içeriğinde 1 yazdığı için onu ekrana gösterecek ve sonra şartı kontrol edecek. Şart ona 1 den küçükse diyor. İşte bunu görünce tak diye duracak.
For döngüsünde ise $sayi değişkenine 1 değerini verdik. Şartımızda do döngüsünde kullandığımız şart ile aynı. Yani $sayi 1 den küçükse dedik. Sonuç ne oldu? do-while döngüsü bir kere dönüp şartı kontrol ettiğinden ekrana 1 yazdırdı, for ise ekrana hiç birşey yazdırmadı.
Kafanızın karışıklığı gitmiştir umarım. Şimdi geçelim diğer döngüye.
------------------------------------------------------------------
foreach döngüsü
Bu döngü aslında dizilerle (array) beraber kullanılır. Diğer döngülerden daha kısa ve anlaşılırdır. Ancak dizileri görmediğimiz için ben konuyu ufacık bir örnekle kapatacam.
Kod
$dizi=array('1','2','3','4','5');
foreach ($dizi as $icerik) {
echo $icerik."-";
}
Aynı işlemi while ile yapmak isteseydim şöyle yapardım yada daha farklı yapılabilir. Şimdilik dizileri görmediğimizden bu şekilde veriyorum.
Kod
$dizi=array('1','2','3','4','5');
while(list($anahtar, $icerik)=each($dizi)) {
echo $icerik."-";
}
Aradaki farka bir bakın. foreach ile ne kadar basitçe dizilerin içeriğini ekrana basıyoruz değil mi? foreach konusuna diziler konumuzda daha ayrıntılı değineceğim.
Bir sonraki dersimizde Dizi nedir? Nasıl yazılır? Dizileri sıralamak, içine değer sokmak, bir değeri silmek, saymak, birleştirmek..vb işlemleri.. göreceğiz.
------------
Php Öğreniyorum 7 - Diziler
Bu konu aslında uzun bir konu. Ancak şimdilik konuyu fazla uzatmayacam.
Değişkenler için PHPnin olmazsa olmazları demiştim. Değişkenleri bilmiyorsanız, onların kullanımını bilmiyorsanız bu iş olmaz. Diziler içinde şunu söyleyeyim. Dizileri bilmiyorsanız birçok kolaylığı bilmiyorsunuz demektir.
ÖNEMLİ: Sayı sayma işlemleri 1 den değil 0 dan başlar. Bunu unutmayın.
Dizi (array) nedir? Bir değişkene teorik olarak sınırsız sayıda veri yüklememize yarayan bir fonksiyondur. Basit olarak; bir veritabanındaki verileri listelemek için her bir veri için değişken tanımlama zorunluluğunu ortadan kaldırır.
Dizi tanımlamak için bir değişken adı yazarız ve sonuna köşeli parantez (süslü parantezde olabilir) kullanırız.
$degisken[]="Selam";
$degisken[]="Millet Bu Dersimizde";
$degisken[]="Dizileri işliyoruz";
Şimdi $degisken adlı değişkene 3 tane veri girdik. Bu değişken [] işaretleri nedeniyle dizi oldu. Şimdi bunu ekrana yazdırmaya çalışalım.
Kod
$degisken[]="Selam";
$degisken[]="Millet Bu Dersimizde";
$degisken[]="Dizileri işliyoruz";
echo $değisken[];
Eeee yazmadı. Boş bi sayfada Array diye bir şey gösterdi. Demek ki bu şekilde gösteremiyoruz. Kodu şu hale getirelim.
Kod
$degisken[]="Selam";
$degisken[]="Millet Bu Dersimizde";
$degisken[]="Dizileri işliyoruz";
print_r($değisken);
Bu şekle getirince de içerisini olduğu gibi gösterdi. Biz dizi tanımlastarhackz.comstarhackz.comstarhackz.comstar hackz.comstarhackz.com aslında ne şekle soktuğumuz görülüyor. (print_r fonksiyonu dizi içini görmemizi sağlar)
Array (
=> Selam [1] => Millet Bu Dersimizde [2] => Dizileri işliyoruz )
Bakın gördünüz mü? Dizilerde bir sıra var. Bu sıra 0 dan başlıyor. Bizim aslında oluşturduğumuz şekil buymuş. Peki bütün içeriği ekrana bu şekilde gösterdik. Bu şekilde gösterim tabii ki yapmak istemeyiz. İstediğimiz sıradaki içeriği nasıl gösteririz?
Kod
$degisken[]="Selam";
$degisken[]="Millet Bu Dersimizde";
$degisken[]="Dizileri işliyoruz";
echo $degisken[0];
Gördüğünüz üzere ilk değeri gösterttik. Ekrana Selam" çıkacak. Kodda yer alan 0 (sıfır) sıra numarasını işaret eder. Verdiğim ilk örnekte sıra numarasını biz oluşturmadık. İstersek bizde sıra numarası tanımlayabiliriz.
Kod
$degisken[a]="Selam";
$degisken[b]="Millet Bu Dersimizde";
$degisken[c]="Dizileri işliyoruz";
echo $degisken[c];
Burada diziye sıra numarasını biz verdik. Biraz daha karmaşıklaştıralım.
Kod
$degisken[a][1]="Selam";
$degisken[a][2]="Millet Bu Dersimizde";
$degisken[a][3]="Dizileri işliyoruz";
echo $degisken[a][3];
Evet bu şekilde iç içe iki dizi kullanmış olduk. Bu konuda fazla durmadan ilerliyorum. Dizileri hep bu şekilde mi tanımlamak zorundayız? Elbette hayır. Şimdi asıl yönteme yani array kullanımına geçiyoruz.
Kod
$degisken=array(
1=>"Selam",
2=>"Millet",
3=>"Tahribat"
);
print_r($degisken);
Karşımıza;
Array ( [1] => Selam [2] => Millet [3] => Tahribat )
şeklinde bir sonuç çıkacak. Sıra numarasını biz girdiğimiz için bu halde gösterdi. İstersek numara girmeden de yapabilirdik.
Kod
$degisken=array(
"Selam",
"Millet",
"Tahribat"
);
print_r($degisken);
Bu durumda ekrana;
Array (
=> Selam [1] => Millet [2] => Tahribat )
şekli çıkardı. Sizlere tavsiyem sıra bilgisi vermeyi unutmayın. Yoksa ekrana yazdırma işlemlerinde bayağı ter dökersiniz. Şimdi biraz daha zorlaştırayım.
---------------------------
Php Öğreniyorum 7 - Diziler
$degisken=array(
dersler"=>array(php","asp","perl"),
okul"=>array(ilkokul","lise"),
numara"=>array(1,3,5,7,9,2,4,6,8)
);
İç içe bir biri array kullandım değil mi? Şimdi buradan veri alalım.
Kod
$degisken=array(
"dersler"=>array("php","asp","perl"),
"okul"=>array("ilkokul","lise"),
"numara"=>array(1,3,5,7,9,2,4,6,8)
);
echo $degisken["dersler"][0];//PHP sonucunu verir.
echo "
";
echo $degisken['okul'][1]; //lise sonucunu verir.
Dizi tanımlamak ve basitçe gösterimi bu şekildedir. Şimdi dizilerde diğer işlemlere geçelim.
Bir dizide kaç adet veri olduğunu öğrenmemiz gerekebilir. Bu tür durumlarda count yada sizeof komutları kullanılır.
$dizi=array(1,3,5,7,9);
echo count($dizi);
echo
";
echo sizeof($dizi);
İkisi de bize aynı sonucu verecektir.
Kod
$dizi=array(a","b","c","d",1,3,4);
foreach ($dizi as $veriler) {
echo $veriler -";
}
Bu şekilde karşımıza;
a -b -c -d -1 -3 -4- sonu çıkacaktır.
Şimdi for ve while döngülerini kullanarak aynı diziyi ekrana yazdıralım.
Kod
$dizi=array("a","b","c","d",1,3,4);
for ($i=0;$iecho "$dizi[$i] -";
}
Birde aynı işlemi while ile yapıyoruz.
Kod
$dizi=array("a","b","c","d",1,3,4);
$i=0;
while ($iecho "$dizi[$i] -";
$i++;
}
Gösterim değişmedi. Aynı şekilde gösterdi. Yalnız fazladan count kullanarak dizi içeriğinde kaç veri var onu saydık ve $dizi[$i] ile ekranda göstermeye çalıştık.
Sıra numarasını da ekrana yazdıralım.
Kod
$dizi=array("a","b","c","d",1,3,4);
foreach ($dizi as $sira=>$veriler) {
echo "SIRA: $sira VERİSİ: $veriler
";
}
Dizi içeriğini ekranda gösterdik. Bu şekilde sizde örnekler yaparak dizileri mantık olarak öğrenebilirsiniz.
-------------
Php Öğreniyorum 8 - Fonksiyonlar
Geldik işimize en çok yarayacak konulardan birine. Fonksiyonları size şöyle anlatacağım.
Diyelim ki büyük bir proje hazırlıyorsunuz. Sık kullanacağınız komutları bir fonksiyon içinde yazarak, gerektiğinde çağırırsınız. Fonksiyon çağrıldığı yerde içerisinde bulunan komutları işler. Çağrılmadan bir işlem yapmaz. Örneğin; sürekli veritabanı bağlantısı kullanıyorsanız bunu bir fonksiyona yazarak gerektiğinde çağırarak bağlantıyı kurmuş olursunuz. Bu size hem zamandan tasarruf hem de daha kısa kod yazmanızı sağlar.
Genel yazım şekli aşağıdaki gibidir.
function fonksiyon_adi(degişken1,$değişken2 .) {
yapılacak komutlar
}
İlk fonksiyonumuzu yazalım.
Kod
function ilk_fonksiyon() {
echo "Bu bizim ilk fonksiyonumuz";
}
Fonksiyon çağrılmadığı için ekranda hiçbir şey göstermez. Kodumuzu şu hale getirip sonucu gözlemleyelim.
Kod
function ilk_fonksiyon() {
echo "Bu bizim ilk fonksiyonumuz";
}
ilk_fonksiyon();
yada
Kod
function ilk_fonksiyon() {
echo "Bu bizim ilk fonksiyonumuz";
}
echo ilk_fonksiyon();
Bu basit bir fonksiyondur. Şimdi fonksiyona değişken ile veri gönderelim.
Kod
function ilk_fonksiyon($icerik) {
echo $icerik;
}
echo ilk_fonksiyon("Ne yazarsam onu göster bakayım");
Evet fonksiyona değer gönderdim. Şimdi biraz değişkenlerde gördüklerimizi hatırlayın ve aşağıdaki örneği inceleyin.
Kod
function ilk_fonksiyon(&$icerik) {
$icerik.=" Online";
}
$ek="Tahribat";
ilk_fonksiyon($ek);
echo $ek;
Dersler zorlaşıyor diye düşünebilirsiniz. Haklısınız dersler zorlaşıyor. Çok fazla açıklama yapmama gerek yok. Eski dersleri takip ettiyseniz ve örnekleri tek tek inceledinizse bu dersleri anlamakta zorluk çekmezsiniz.
Kodumuza geri dönersek; Önce fonksiyon tanımladım. Fonksiyona değişkeni &$icerik gibi eklediğimi gördünüz. Bu durumu birazdan açıklayacağım. Sonraki satırda $icerik.= diyerek değişkenin devamını olarak gideceğini söyledim. Sonra $ek diye bir değişken tanımladım ve değer atadım. Fonksiyonu tanımladığım değişkenle çağırdım. Değişken içeriği fonksiyona gitti. Fonksiyonda kendisine gelen bu veriyi aldı ve $icerik adlı değişkenin başına ekledi. Sonrasında $ek adlı değişkenimizi çağırdım.
Off amma karışık oldu be. Very Happy
PHPde şöyle bir olay var.
Kod
$site="Tahribat";
$degisken="site";
echo $$degisken;
Bu kod bize Tahribat sonucu verecektir. Kodu aslında şöyle de yazabilirdiniz;
Kod
$site="Tahribat";
echo $site;
İlk örnekteki $$ yazınca PHP $degisken adlı değişkenin site adlı bir değişkenin değerini aldığını bilecek ve onu gösterecektir. İlk örnekteki $$degisken yerine $degisken yazsaydık karşımıza site yazısı çıkacaktı. Bu yöntem sayesinde az bir kodla yüzlerce veriyi ekrana yazdırabiliriz.
Peki &$ olayı nedir? İki değişken arasındaki veri alışverişinin dinamik olmasını sağlar diyebilirim. Örnekleyelim;
Kod
$site="Tahribat";
$degisken=&$site;
$site="Online";
echo $degisken;
--------------------
Php Öğreniyorum 8 - Fonksiyonlar
Sonuca bakarsanız karşınıza Online gelecektir. Yani bakın değişken içeriğini alt tarafa yazdığımız bir başka değişkenle değiştirdim. Off amma kafanız karıştı Very Happy Peki olayı şöyle anlatayım. Birinci değişkenin tuttuğu değeri değiştirmeden, ikinci değişkene birinci değişkenin değerini dinamik olarak atadık. Dinamik atama nedeniyle birinci değişkenin değeri değiştiği anda ikinci değişkenin değeri de değişecektir. Biz ikinci değişkeni çağırdığımız sürece istediğimiz an değerleri değiştirebiliriz.
Kafa karıştırmaya devam etmeyeyim ve fonksiyonlara geri döneyim. Geriye doğru örneklere bakarsanız bir örnekte bu olayı kullandım. Şimdi fonksiyonlarla bir çarpma işlemi yapacağım.
Kod
function carp($sayi1,$sayi2) {
return $sayi1*$sayi2;
}
echo carp(10,5);
Örnek hoş güzel oldu ancak ya ikinci sayıyı girmeyi unutursam ne olur? Tabii ki hata verecektir. Warning: Missing argument 2 for carp() in deneme.php online 2 gibi bir hata olması hoş olmaz. Bu durumu düşünerek birkaç alternatif üretin bakalım. Bu soruyu cevaplayanlar önceki konuları az çok öğrenmişlerdir.
Şimdi Global tanımlamaları görelim.
Şimdi şöyle bir örnek yazayım.
Kod
$icerik="PHP Derslerinde Fonksiyonları İşliyoruz";
function icerigi_cagir() {
echo $icerik;
}
icerigi_cagir();
Fonksiyon dışında bir değişken tanımladım ve fonksiyon içinde değişkeni göster dedim. Ancak ekrana hiçbir şey çıkmadı. Çünkü değişkeni fonksiyonda tanımlamadık. Değişkeni fonksiyonda tanımlamadan kullanmanın yolu yok mu? Elbette var. global tanımlama yöntemi. Örneği şu hale getirelim.
Kod
$icerik="PHP Derslerinde Fonksiyonları İşliyoruz";
function icerigi_cagir() {
global $icerik;
echo $icerik;
}
icerigi_cagir();
İşte sonuç karşımızda. Fonksiyon dışında birden fazla değişkeni fonksiyona atayalım şimdi. Bu işlem için her değişken arasına global tanımlamada virgül kullanırız.
Kod
$ders="PHP Derslerinde";
$konumuz="Fonksiyonları İşliyoruz";
function icerigi_cagir() {
global $ders, $konumuz;
echo "$ders $konumuz";
}
icerigi_cagir();
Kod
function degisken_cikar() {
$topla=0;
$topla++;
echo $topla." ";
}
degisken_cikar();
degisken_cikar();
degisken_cikar();
degisken_cikar();
Bu örneği çalıştırırsak karşımıza "1 1 1 1" gelecektir. Fonksiyonu 4 defa çağırdığım için bu hale geldi. Ancak $topla++; bir işe yaramadı. Ben 1 2 3 4 çıkmasını istiyorum. Bakın bu durumda örneği ne hale getiriyorum.
Kod
function degisken_cikar() {
static $topla=0; //static ekledim.
$topla++;
echo $topla." ";
}
degisken_cikar();
degisken_cikar();
degisken_cikar();
degisken_cikar();
İşte benim istediğim buydu. Burada static ile değişkeni fonksiyon dışına çıkarmak için bir ön hazırlık yapıyoruz ve fonksiyon her çağrıldığında değerin bir artmasını sağlıyoruz.
Örnekleri biraz geliştirmeye çalışın.
Örneğin global kullanarak basit bir toplama yapalım.
Kod
$x=2;
$y=20;
$z=8;
function topla() {
global $x,$y,$z;
echo "$x+$y+$z="." ".($x+$y+$z);
}
topla();
Fonksiyonlar şimdilik bu kadar.
-Alıntı-
Php Öğreniyorum 1 - Başlarken (Sayfa:1)
Bir zamanlar proje ekibi için yazdığım dersleri burada yayınlıyorum. Birçok kişinin işine yarayacağına eminim.
Herhangi bir HTML editörü (Frontpage, dream..vs) olmadan kodlara bakarak bazı şeyleri değiştirebilmeniz önemli. Bir sitenin kaynak kodunu açtığınızda o kodlara sanki bir düşmanmış gibi bakmamanız lazım.
PHP aslında çok basit bir dildir. Biraz zaman ayırmak ve örnekleri kendi kendinize denemeler yaparak, hatta örnekleri değiştirip uygulastarhackz.comstarhackz.comstarhackz.comstarh ackz.comstarhackz.com yapmak size en kısa zamanda PHP dilini öğretecektir.
PHP bir script dilidir. Yani .exe yada .com uzantısına sahip programlar gibi derlenmesine gerek yok. Ancak PHP scrptlerinizi çalıştırabilmeniz için bu dilden anlayan bir programa ihtiyacınız var.Bu programın web server tarafından çalıştırılabilir olması gerekmektedir. Başka bir ifadeyle web server programınızı (Apache, PWS yada ISS gibi) PHP anlar hale getirmeniz gerekmektedir.
Evet gelelim PHP ile bilgi vermeye.
PHP kodları arasına yada arasına yazılır. Ben birinci şekli tavsiye ederim. İlerde XML ile ilgilenirseniz yabancılık çekmezsiniz. Çünkü XML kodları arasında yazılır. PHP kodu içerisinde php kodu kullanmak için en basit olarak echo kullanılır. Buna örnek vererek ilk kodumuzu yazalım.
Kod
echo "
Saykonet merhaba!";
?>
Bu kodu merhaba.php olarak kaydedin ve sonucu gözlemleyin.
Size farklı bir php yazma şekli göstereceğim ama bu şekli tavsiye etmem. Sadece bilmenizi istedim. Olurda karşılaşırsanız şaşırmayın. İşte kod:
Kod
Bu kodu merhaba2.php olarak kaydedin ve sonucu gözlemleyin. Sonucun aynı olduğunu göreceksiniz. Yalnız aklınıza takılabilir. Bu şekilde kullanırsam server kodları işlemek yerine browsera göndermez mi diyebilirsiniz. Kesinlikle hayır. j a v a s c r i p t, VBScript browserda yorumlanır ama PHP, ASP, CGI ve ColdFusion serverda yorumlanır. Ortaya çıkan sonuç saf HTML olarak browsera gönderir.
========================================
Peki PHP kodları içinde nasıl yorum ekleyeceksiniz? Öncelikle "Yorum ne işe yarar?" sorusunu cevaplayalım. Yorum kodlara açıklama eklemek için kullanılr. Bunun yapılmasının sonucunu daha önce yazdığı kodlara daha sonra baktığınızda göreceksiniz. Bazen yorum satırlarında copyright bilgileri verilir. Buna bir örnek vermek gerekirse phpnuke kodlarında dikkat ederseniz ilk satırlarda şu yazı yer alıyor.
PHP-NUKE: Advanced Content Management System
============================================
Copyright (c) 2002 by Francisco Burzi
PHP-Nuke
This program is free software. You can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License.
Bu yazıyı kodun içerisine eklemek için yorum işaretlerine ihtiyaç var. Aksi takdirde PHP kodları çalışmaz. Yorum işaretleri şunlar: /* */, # ve // . Bu işaretleri bir örnekle açıklayayım.
Kod
// Bu phpnin tek satırlı yorum işareti
// Bu satır php yorumlayıcısı tarafından dikkate alınmaz.
echo "İlk yorum işareti açıklandı.
";
# Bu işarette yine bir yorum işareti
# Bu satır da php yorumlayıcısı tarafından dikkate alınmaz.
echo "PHPnin yorum işaretlerinden biri olan # işaretinin başında bulunduğu satır php yorumlayıcısı tarafından dikkate alınmaz.
";
/* Bu işarette phpnin çok satırlı yorum işareti
bu işareti kapatmadan istediğiniz kadar yorum yazabilirsiniz
Buraya istediğiniz yorum yazabilirsiniz */
echo "Yorum işaretlerini anlamışsınızdır umarım.";
?>
-----------------------
Php Öğreniyorum 2 - Yazım Kuralları
Önceki dersimde PHP diline kısa bir başlangıç yapmıştım. Bu derste ise PHP yazım kurallarına değineceğim. Bu üzerinde durmamız gereken en önemli konudur. En çok hata yapma nedeni bu yazım kurallarını bilmemekten kaynaklanıyor.
PHP'de herhangi bir yazıyı ekrana yazdırmak için 3 (üç) komut vardır. Bunlar echo, print, printf komutlarıdır. printf komutunun başka özellikleri de var. Ancak bu konuya daha sonra değineceğim. E nçok kullanılan echo ve print komutlarıdır.
Kod
1: 2: echo "Merhaba Millet";
3: ?>
kodunu inceleyelim. 1. satırda
ile PHP dosyamızın bittiğini belirttik. Kodlardan 2. satırda ekrana yazı yazdırmak için echo kullandık. Bunun yerine print komutunu da kullanabiliriz.
Kod
1: 2: print "Merhaba Millet";
3: ?>
2. satırı tekrar inceleyelim. echo ile ekrana yazı yazdıracağımızı söyledik. "" (çift tırnak) işaretleri arasına da ekranda gösterilecek yazımızı yazdık. Metinler tırnak işaretleri arasında yazılmalıdır. En sondaki ; (noktalı virgül) ile de echo komutumuzun bittiğini belirttik. Eğer ; işaretini kullanmazsak PHP yorumlayıcı echo komutunun bittiğini anlayamaz.
Kod
1: 2: print 'Merhaba Millet';
3: ?>
Buradaki 2. satırda ise çift tırnak(") yerine tek tırnak (') kullandık. Bu şekildeki kullanımda da yine ekranda Merhaba Millet yazacaktır. Tek tırnak kullanmak ile çift tırnak kullanmak arasında farklar vardır. Bunlara daha sonra değineceğim. Şöyle toplu bir örnek vereyim.
Kod
1: 2: echo "Merhaba Millet";
3: print "Merhaba Millet";
4: echo 'Merhaba Millet';
5: print 'Merhaba Millet';
6: ?>
Kodunu yazıp çağırdığımızda yan yana 4 adet Merhaba Millet yazısı çıkacaktır. 2., 3.,4. ve 5. satırlara dikkat ederseniz komutun bittiğini ; işaretiyle her seferinde belirttim.
Peki echo, print içerisinde HTML komutları kullanılabilir mi? Elbette kullanılabilir. İşte dikkat burada başlıyor.
Kod
echo "
Merhaba Millet
";
?>
Şeklindeki bir komutla Merhaba Millet yazısını ortada yazdırdık.
Normal HTML şekli şu şekilde olmalıydı.
Kod
Merhaba Millet
Ancak biz PHP de bunu yazarken echo da
Kod
Merhaba Millet
şeklinde kullandık. Bu şekildeki kullanımda doğrudur ancak biz yine kurallara göre yazalım. Örneğimizi aşağıdaki şekle getirelim ve çalışıp çalışmadığına bakalım.
Kod
echo "
Merhaba Millet
";
?>
Sizce bu çalışır mı? Hayır çalışmaz hata verir. Neden hata verir açıklayayım.
echo "
Merhaba Millet
"; kodundaki kalın yazan yere dikkat edin. PHP iki çift tırnak işareti içerisini okur. Yani ilk iki tırnak işaretini algılar. Komutun bittiğini ; (noktalı virgül) ile belirttiğimizden echo "
Merhaba Millet
';
şekline getirirsek hata vermez. Ancak ileri de anlatacağım değişkenleri tek tırnak içerisinde gösteremeyiz. Tek tırnak için değişken göstermeye çalıştığınızda PHP o değişkeni yazı olarak algılar ve değişkeni yazı olarak ekranda gösterir.
Burada dikkat edilmesi gereken nokta
Merhaba Millet
komutundaki çift tırnak yerine tek tırnak kullandığımızda yine hata verir.
2. Özel karakter olarak kullanılan simgeleri anlamsızlaştırmak:
Kod
echo "
Merhaba Millet
";
---------------
Php Öğreniyorum 2 - Yazım Kuralları
şeklinde ki kullanım buna örnektir. Dikkat ederseniz
bölümünde " çift tırnak işaretinden önce \ işaretini kostarhackz.comstarhackz.comstarhackz.comstarhackz .comstarhackz.com çift tırnağı anlamsızlaştırıyoruz.
*****
echo ile bir yazı yazdırmaya başladık diyelim. Yazımız uzun bir metin olsun.
Microsoft, uzun bir süredir beklenen Internet Explorer Web tarayıcısının son sürümünü sonunda kullanıcılara sundu. Güvenlik alanında pek çok yeniliği barındıran Internet Explorer 7, İnternet´te sörf yapmayı kolaylaştıran özellikler de içeriyor. Internet Explorer 7´nin bir önceki sürümü olan Internet Explorer 6, Ağustos 2001´de piyasaya sürülmüştü.
Uzun bekleyiş sona erdi ve Microsoft, sonunda Internet Explorer 7yi piyasaya sürerek 5 yıllık bir aradan sonra Internet Explorer Web tarayıcısı için en büyük güncellemeyi yaptı. Internette güvenli ve etkili bir sörf için en son güvenlik güncellemelerini ve kullanım fonksiyonlarını içeren Internet Explorer 7, yokluğu boyunca geçen sürede kaybettiği itibarını yeniden toparlamasını sağlayabilecek pek çok yeniliğe sahip.
Bu yazıyı PHP de echo ile yazdıracağız. Ancak her satırı ayrı ayrı yazmak istiyorum.
Kod
echo "Microsoft, uzun bir süredir beklenen Internet Explorer Web tarayıcısının son sürümünü sonunda kullanıcılara sundu. Güvenlik";
echo "alanında pek çok yeniliği barındıran Internet Explorer 7, İnternet´te sörf yapmayı kolaylaştıran özellikler de içeriyor. Internet";
echo "Explorer 7´nin bir önceki sürümü olan Internet Explorer 6, Ağustos 2001´de piyasaya sürülmüştü.";
echo "
";
echo "Uzun bekleyiş sona erdi ve Microsoft, sonunda Internet Explorer 7yi piyasaya sürerek 5 yıllık bir aradan sonra Internet Explorer";
echo "Web tarayıcısı için en büyük güncellemeyi yaptı. Internette güvenli ve etkili bir sörf için en son güvenlik güncellemelerini ve";
echo "kullanım fonksiyonlarını içeren Internet Explorer 7, yokluğu boyunca geçen sürede kaybettiği itibarını yeniden toparlamasını";
echo "sağlayabilecek pek çok yeniliğe sahip.";
?>
Bu şekilde bir yazım yapabilirsiniz yada hepsini tek echo içerisinde yazabilirsiniz.
Kod
echo "Microsoft, uzun bir süredir beklenen Internet Explorer Web tarayıcısının son sürümünü sonunda kullanıcılara sundu. Güvenlik alanında pek çok yeniliği barındıran Internet Explorer 7, İnternet´te sörf yapmayı kolaylaştıran özellikler de içeriyor. Internet Explorer 7´nin bir önceki sürümü olan Internet Explorer 6, Ağustos 2001´de piyasaya sürülmüştü.
Uzun bekleyiş sona erdi ve Microsoft, sonunda Internet Explorer 7yi piyasaya sürerek 5 yıllık bir aradan sonra Internet Explorer Web tarayıcısı için en büyük güncellemeyi yaptı. Internette güvenli ve etkili bir sörf için en son güvenlik güncellemelerini ve kullanım fonksiyonlarını içeren Internet Explorer 7, yokluğu boyunca geçen sürede kaybettiği itibarını yeniden toparlamasını sağlayabilecek pek çok yeniliğe sahip.";
?>
Bu şekilde bir yazım da yapılabilir. Ben ilk örneği şu hale getireceğim şimdi.
Kod
echo "Microsoft, uzun bir süredir beklenen Internet Explorer Web tarayıcısının son sürümünü sonunda kullanıcılara sundu. Güvenlik"
."alanında pek çok yeniliği barındıran Internet Explorer 7, İnternet´te sörf yapmayı kolaylaştıran özellikler de içeriyor. Internet"
."Explorer 7´nin bir önceki sürümü olan Internet Explorer 6, Ağustos 2001´de piyasaya sürülmüştü."
."
"
."Uzun bekleyiş sona erdi ve Microsoft, sonunda Internet Explorer 7yi piyasaya sürerek 5 yıllık bir aradan sonra Internet Explorer"
."Web tarayıcısı için en büyük güncellemeyi yaptı. Internette güvenli ve etkili bir sörf için en son güvenlik güncellemelerini ve"
."kullanım fonksiyonlarını içeren Internet Explorer 7, yokluğu boyunca geçen sürede kaybettiği itibarını yeniden toparlamasını"
."sağlayabilecek pek çok yeniliğe sahip.";
?>
Şimdi bu örneğimi açıklayayım. ilk satırda echo ile yazdırmaya başladım. Sonuna ; koymadım ve komutun devam ettiğini belirttim. Bir sonraki satırda echo yerine .(nokta) işaretini kullandım ve onu da ; işaretiyle bitirmeyerek komutun hala devam ettiğini belirttim. Aradaki satırlarda da bu şekilde devam ettim. Son satıra da . ile başlayıp ; ile bitirdim. Nokta (.) bir önceki komutun (echo) yerini aldı. Son satırda ; işaretini kullanmasaydım yine hata verirdi yada aradaki satırlarda ; işareti ile bir satırı bitirseydim başta başladığım echo komutu bitmiş olacaktı ve . işareti anlamsız bir hale gelecekti. Dolayısıyla yine hata verecekti. Yapılan en büyük hatalardan biri budur. Son örneği şu halde de yazabilirim.
Kod
echo "Microsoft, uzun bir süredir beklenen Internet Explorer Web tarayıcısının son sürümünü sonunda kullanıcılara sundu. Güvenlik"
."alanında pek çok yeniliği barındıran Internet Explorer 7, İnternet´te sörf yapmayı kolaylaştıran özellikler de içeriyor. Internet"
."Explorer 7´nin bir önceki sürümü olan Internet Explorer 6, Ağustos 2001´de piyasaya sürülmüştü.";
echo "
";
--------------------------
Php Öğreniyorum 2 - Yazım Kuralları
echo "Uzun bekleyiş sona erdi ve Microsoft, sonunda Internet Explorer 7yi piyasaya sürerek 5 yıllık bir aradan sonra Internet Explorer"
."Web tarayıcısı için en büyük güncellemeyi yaptı. Internette güvenli ve etkili bir sörf için en son güvenlik güncellemelerini ve"
."kullanım fonksiyonlarını içeren Internet Explorer 7, yokluğu boyunca geçen sürede kaybettiği itibarını yeniden toparlamasını"
."sağlayabilecek pek çok yeniliğe sahip.";
?>
Bu konudaki örnekleri çoğaltabilirim. Kısa bir özet yaparsak;
Her komut ; (noktalı virgül) işareti ile bitmelidir.
Çift tırnak ve tek tırnak kullanımı yerine göre seçilmelidir.
HTML komutları eklerken " çift tırnak işareti \ işareti ile anlamsızlaştırılmalıdır.
Ekrana yazı yazdırmak için echo yada print komutu kullanılır.
(nokta). işareti bir önceki komutun yerine geçebilir
Konuyu bütün anlattıklarımı içeren bir örnekle noktalıyorum.
Kod
//Ekrana yazı yazdırmak için echo ve print kullanılır.
echo "Ekrana echo komnutu ile yazı yazdırdım
";
print "
Bu yazıyı print ile yazdırdım ve ortalattım. Çift tırnakları anlamsızlaştırdım.
";
echo 'Burada tek tırnak kullandım. Böylece " işaretini yazıda kullanabilirim.
';
echo '
Tek tırnak ile başladığım için çift tırnağı kullanabilirim
';
echo "
HTML Komutu kullanıyorum.
";
echo "Bu satır alttan devam edecek. ; işareti ile bitirmiyorum"
."bu satıra nokta ile başladım. yani üst yazının devamı"
."bu da üst satırın devamı. ancak burada echo komutuna son veriyom. Çünkü yorum yazacam.
";
/* Araya yorum işareti sokuşturalım ki önceki konuyu tekrarlayın.
Böylece unutmamız zorlaşır. Yazdıklarımı okumayı unutmayın*/
#Bu da bir yorum satırı
echo "Bu satırın içinde yorum yazar gibi yapacam"
."/* Araya yorum işareti sokuşturalım ki önceki konuyu tekrarlayın."
." \"\"\"\"ÖRNEK BİTTİİİİ \"\"\"\"";
?>
Hadi bakalım html kodunuzu php ile yazabilecek misiniz? DENEYİN BİRAZ KOLAY BİSEY
---------------
Php Öğreniyorum 3 - Değişkenler
Yazım kurallarını öğrendiğinize göre PHP'ye asıl bir giriş yapalım.
Bu dersimde sizlere olmazsa olmaz, bilmezseniz trene bakar gibi bakacağınız en önemli konu olan değişkenleri anlatacağım. Ancak konuda çok fazla gereksiz detaya girmeyeceğim.
Değişken neye benzer? Bir bardak düşünün. Bardağa değişken diyelim. Bardağın içine ne koyarsanız koyun bardak bardaktır. Ancak değeri içine konulduğu şeydir. Yani su koyarsanız bardak değişkeninin değeri su olur, meyve suyu koyarsanız değeri meyve suyu olur, şarap koyarsanız değeri şarap olur Değişmeyen şey bardak ancak içine konulan şey sürekli değişiyor. İşte değişken dedikleri bu dur.
Değişkenleri yazmak için $ (dolar işareti - klavyede genel olarak alt gr+4 tuşlarına basarak çıkar) işareti kullanılır. Yani bir scriptte $ işaretini görürseniz bu bir değişkendir.
Tabii öyle kafanıza göre değişken yazamazsınız. Bunun da belli başlı kuralları vardır. Aslına bakarsanız 2 kural var. Değişken rakamla başlamaz ve değişken adında Türkçe harfler kullanılmaz. Neden rakam kullanılmaz ilerde başınıza gelirse anlarsınız
$deneme
$n2deneme
$isimsoyisim
$rakam
Bunlar birer değişkendir. Ancak sadece değişken. Bir değerleri yok. Bardak örneğinde olduğu gibi bunlar boş bardak gibidir. Bunlara değer atamak şu şekildedir.
$deneme="bu bir deneme";
$n2deneme="Tahribat";
$isimsoyisim="Aloryan Exirt";
$rakam=12345; yada $rakam="12345";
** rakam yada sayı yazarken "" işaretini kullanabilirsiniz yada kullanmayabilirsiniz. Bu size bağlı. Ancak bazı işlemler esnasında tırnak kullanmanız gerekebilir. Bunu ilerdeki konularda göreceğiz.
Soyut olarak gidiyorum ve sizin kafanız şu anda allak bullak oldu. Bunu sayfada nasıl gösteririz?
Kod
$adim="Aloryan Exirt";
$telefonum=123456;
echo "benim adım $adim ve telefon numaram $telefonum dır. Bana bu şekilde ulaşın";
?>
Eğer sadece değişkenin içeriğini yazdıracaksan echo daki "" işaretlerini yazmayabiliriz. Nasıl mı?
Kod
$adim="Aloryan Exirt ";
echo $adim;
?>
Burada önemli konulardan biri ise bazı özel karakterlerdir. "Benim yeni bilgisayarım 1000$dır" yazalım.
Kod
$degisken="\"Benim yeni bilgisayarım 1000\$dır\"";
echo $degisken;
?>
Dikkat ederseniz " işaretini kullanmak için \ ile etkisizleştirdim. $ işareti de özel bir işaret olduğundan (değişken tanımlamakta kullanıldığından) bunu da etkisizleştirmem lazımdı.
Ancak " işareti yerine ' kullansaydım o zaman değişkenler ' içinde anlamsız olduklarından etkisizleştirmeye gerek olmayacaktı.
Kod
$degisken=' "Benim yeni bilgisayarım 1000$dır" ';
echo $degisken;
?>
Bazen değişken öldürmemiz yani içini boşaltmamız gerekir. Bu durumda değişkene NULL değerini atarız. Değişken ölmüş olur. (öldüren helvasını yapar ona göre)
Kod
$adim="Aloryan Exirt";
echo $adim; //Aloryan Exirt yazar
$adim=NULL; //Değişkene yeni değer atacam işim bitti. Öldürdüm değişkeni.
$adim="Aloryan Exirt ";
echo $adim;
?>
yada değişkeni yok etmek için unset kullanırız. Örnek şu şekilde.
Kod
$adim="Aloryan Exirt";
echo $adim; //Aloryan Exirt yazar
unset($adim);
$adim="Aloryan Exirt";
echo $adim;
?>
-------------------
Php Öğreniyorum 3 - Değişkenler
Gördünüz mü? Bu konu ne kadar basit. Birkaç ayrıntı var onlara dikkat edin yeter.
Son olarak \$ \" gibi işaretler kullandım. Genel olarak şunlar vardır. Size yazayım da aklınızda bulunsun.
\' Tek tırnak
\" Çift tırnak
\\ ters slash
\$ dolar işareti
HTML ÖNİZLEMEDE ŞOV YAPMAK İÇİN
\n HTML önizlemede yeni satır yapar.
\r HTML önizlemede satır başı yapar.
\t HTML önizlemesinde tab yani sekme yapar. Hani klavyede varya o tuşun görevi.
Örnek:
Kod
echo " deneme 1
";
echo " deneme 2
";
echo " deneme 3
";
echo " deneme 4
";
?>
Kodu yazın ve browserda açarak sayfa kaynağına bakın.
deneme 1< br> deneme 2< br> deneme 3< br> deneme 4< br>
Gibi görülecektir. Bu da hiç hoş bir görüntü olmaz. Biz ustayız kaynağa bakınca böyle görülmesi karizmayı yerlerde süründürür. Biraz şekil verelim.
Kod
echo " deneme 1
\n";
echo "\t deneme 2
\n";
echo "\t\t deneme 3
\n";
echo "\t\t\t deneme 4
\n";
?>
Böyle yapınca ne olur bir bakın bakalım kaynak kodlara Bize de bu yakışır değil mi??
Benden değişkenler şimdilik bu kadar. Herkes adını, mesleğini değişken içinde kullanıp ekranda göstersin bakalım.
----------------
Php Öğreniyorum 4 - Matematik ve Mantık İşlemleri
Bir başlangıç yaptım, yazım kurallarına değindim, değişkenleri anlattım. Adım adım ön bilgileri vermeye devam ediyorum. Şimdi ki konumuz çok fazla ayrıntılı değil ancak bu da ilerde yazacağımız kodlar için ön bilgi niteliğinde. İyi anlamaya çalışın.
VERİ TÜRLERİ
PHP açısından altı tür değer vardır. Bunlar;
Integer : 52364, 1,301 gibi.
Double : 3,59 gibi
String : Tahribat gibi.
Boolean: true / false gibi.
Object ve Array.
Veri türlerini bilmek neden önemli derseniz PHP ile toplama yada çıkarma yaparken anlarsınız diyeceğim. Çünkü siz PHP 'ye 2 ile 3'ü topla dersiniz ama sonucu 5 göstereceği yerde 23 olarak gösterirse neden bahsettiğimi anlarsınız.
Değişkenlere atadığımız verinin türünü genelde biliriz. Ama çok satırlı bir program yazacaksak değişkenlere atadığımız verinin türünü unutabiliriz. Bu da ilerde istemediğimiz sonuçlara yol açar. Örneğin bir yerde $a değişkeni tanımlar ve değer olarak sayısal 123 değerini verebiliriz. Daha sonra $b değişkenini tanımlar ve değer olarak 456 değerini verebiliriz. Bu tanımlamayı bir fonksiyonda yapıp sonuçta bir toplama işlemi yaptırabiliriz. Ancak başka bir fonksiyonda yine $a ve $b değişkenlerini tanımlayıp bu defa değer olarak sayı değilde string atayabiliriz. Burada toplama yaptırabiliriz ama sayılarda olduğu gibi bir toplam değil de birleştirme için yaparız. Buna şöyle bir örnek vereyim. $a değeri "Aloryan" ve $b değeri ise "Exirt" olsun. Burada değişkenlere atadığımız verinin türü string'tir. Burada bir toplama işlemi yaparak ortaya Aloryan Exirt yazısını çıkartabiliriz. Yani anlayacağınız üzere verinin türü çok önemli oluyor. Bu konuyu ilerde yapacağımız uygulamalara kadar burada bırakıyorum. Uygulamalarda veri türünü ne kadar önemli olduğunu anlayacaksınız.
MANTIKSAL VE MATEMATİK İŞLEMLERİ
Matematik:
+ (Toplama),
- (çıkartma),
/ (Bölme),
* (Çarpma) ve biraz ileri düzey bir işlem
% (Modules).
Şimdi hemen bir toplama işlemi yapan basit bir şey yazalım.
Kod
$a=2;
$b=1;
echo "$a+$b";
Mantık İşlemleri ise şunlar:
= = eşitse,
!= eşit değilse,
= = = aynı ise, (Daha kullanmadım Very Happy )
> büyükse,
< küçükse,
<= küçükse veya eşitse,
>= büyükse veya eşitse.
Ayrıca;
|| veya; or veya;
&& ve; and ve;
Xor özel veya;
! değil.
Şimdi de bir örnek yapalım ve konuyu tamamlayalım.
Örnek olarak hemen aklıma üniversitede uğraştığımız ve hesaplama yapmaktan insanı canından bezdiren ders geçiş sistemi geldi. Şimdi ben şöyle bir örnek veriyorum. Diyelim ki, dersten geçiş sınavları iki vize ve bir final şeklinde olsun. Dersten geçmek için ise; vize ortalamasının yüzde 30'u ile final notunun yüzde 70 nin toplamı 50 den büyük olmalı ve final notununda en 50 olması şartı olsun. Buna göre dersten geçip geçmediğinizi bir programla hesaplatalım. Programı tamamen yazıyorum.
Kod
// önce notların değişkenlerini tanımlayalım.
$vize1=10;
$vize2=10;
$final=100;
// Şimdi de işlemleri yapalım.
$vize_ortalama=($vize1 + $vize2)/2;
$yuzde30=$vize_ortalama/100*30;
$yuzde70=$final/100*70;
$toplam=$yuzde30+$yuzde70;
echo "Vize 1 Notu: $vize1
";
echo "Vize 2 Notu: $vize2
";
echo "Final Notu: $final
";
echo "Vize Ortalama: $vize_ortalama
";
echo "Vizenin yüzde 30'u: $yuzde30
";
echo "Finalin yüzde 70'i: $yuzde70
";
echo "Toplam: $toplam
";
// koşulları kontrol edip sonucu yazdıralım.
// Şart işlemlerini bir sonraki derste işleyeceğim.
if(($final>=50) && ($toplam>=50)) {
echo "Tebrikler! Dersten geçtiniz!";
} else {
echo "Dersten kaldınız!";
}
?>
Kodda şu ana kadar öğrendiğiniz herşeyi kullanmaya çalıştım. Bu arada bir sonraki derste anlatacağım şart işlemlerine de basit bir giriş yaptım. Bu kod daha basit ve kısa olabilirdi. Ancak amacım sizlere daha önceki derslere de gönderme yapmak ve yazıları pekiştirmekti. Siz bu kodda vize ve final notlarını değiştirin ve sonucu gözlemleyin.
----------------
Php Öğreniyorum 4 - Matematik ve Mantık İşlemleri
Bu konu o kadar zor bir konu değil. Bu nedenle üzerinde fazla durmadım.
Konuya bazı fonksiyonlar ile devam ediyorum.
Mutlak Değer Fonksiyonu: abs()
Kod
echo abs(-10);
?>
Anlamı şu şekilde. Eğer matematik dersine öcü gibi bakmadınızsa |-10| =10 ifadesine karşılık gelir. Bir örnek daha;
Kod
echo abs(10/25-47);
?>
Yuvarlama Fonksiyonları: floor(), ceil(), round()
floor: Bir bölme yada çarpma işleminde çıkan sonucu aşağıya doğru yuvarlar ve öyle gösterir.
ÖRNEK:
Kod
echo floor(100/26); //Ekrana kaç yazdırır söyleyin bakalım?
ceil(): Bu komut ise floor komutunun tam tersini yapar. Yani bir üste yuvarlar.
ÖRNEK:
Kod
echo ceil(100/26); //Sizce ekrana bu defa kaç yazacak?
round(): Bir işlemden çıkan ondalıklı sonuçlar; 0,5 ve üzeri bir rakamsa bir üst rakama, eğer 0,5 dahil değilse bir alttaki sayıya yuvarlar. //Kabul tam cümle olmadı Very Happy
Kod
echo round(15.5);
echo round(15.2);
echo round(15.7);
En büyük ve en küçük Fonksiyonları: max() ve min()
Dizi değişkenlerde (array) kayıtlı bilgilerden en büyük değeri ve en küçük değeri bulmak için kullanırız.
ÖRNEK:
Kod
$sayilar=array(
a=>50,
b=>120,
c=>42,
d=>1,
e=>51,
f=>17
);
echo En Büyük Değer:.max($sayilar);
echo
;
echo En Küçük Değer:.min($sayilar);
Örnekte yer alan array için henüz acele etmeyin. İleriki konularda bunu detaylıca anlatacağım.
Aklıma gelenler şimdilik bunlar. Sormak istediğiniz matematik fonksiyonu olursa sorabilirsiniz. Daha çok varda en çok ben bunları kullanıyorum. Sinüs, consinüs, logaritma,üstsel ifadeler,sayı sistemleri dönüştüren fonksiyonlar.. Bunlara isterseniz yer vereyim.
ÖNEMLİ: PHP de matematiksel işlem yaparken ondalık rakam kullanacağınızda ondalığı ayırmak için nokta (.) işaretini kullanmalısınız. Nokta yerine virgül kullanırsanız hata verecektir. Yani 0.5 doğru yazım şekli, buna rağmen 0,5 hatalı yazım şeklidir.
----------------------
PHP Geniş Anlatım 3
Php Öğreniyorum 5 - Program Denetleme İşlemleri
Geldik en önemli konulardan birine. Daha önceki dersleri düzenli takip edenler bu derste fazla yorulmayacaklardır.
IF Komutu:
PHP dilinde en çom kullanılan denetleme komutlarındandır. Türkçe karşılığı "eğer" dir.
Programa bir şart koyarız. Eğer girilen değer şu ise şunu yap, eğer girilen değer bu ise şu komutları yap, eğer değer yoksa bunları yap.
KULLANIMI:
if(yapılması istenen koşullar,şartlar neyse) {
şartların yada koşullar şartı karşılıyorsa şunu yap
}
ÖRNEK:
Kod
if(1<2) {
echo "1, 2 den küçüktür";
}
Yada bir önceki derse göre örneğimizi değiştirelim.
Kod
if(1<2 && 3>2) {
echo "1, 2 den küçük ve 3, 2 den büyüktür.";
}
NOT: Bu örnekte && yerine AND de kullanılabilir. Arada bir fark yoktur.
Bir örnek daha vereyim.
Kod
if((3==3) OR (4<3)) {
echo "Ya 3, 3 e eşittir. Yada 4, 3 ten küçüktür.";
}
ELSE: Bu komut denetlenmekte olan bir koşulun yanlış olması durumunda yapılacak olan komutları belirler. if ile beraber kullanılır.
ÖRNEK:
Kod
if(5==5) {
echo "5 ile 5 birbirine eşittir";
} else {
echo "5 ile 5 birbirine eşit değildir";
}
ELSEIF: Bir tane şart yetmezse aynı if içinde birden fazla elseif kullanabilirsiniz. Kullanım şekli şu şekildedir.
if(şartlar) {
şart uygunsa uygulanacak komutlar
} elseif(başka bir şart) {
başka şartın gerçekleşmesi durumunda uygulanacak komutlar
} else {
şartların hiçbiri tutmazsa uygulanacak komutlar
}
Evet şöyle kısa bir toparlayalım.
1-Bir if komutu kullanmak için sadece if kullanabilir. Diğerlerini kullanmaya gerek yoktur.
2-if kullanmadan else ve elseif kullanılamaz.
3-Bir if içinde istediğiniz kadar elseif olabilir.
Şimdi örneklere devam edeyim.
ÖRNEK 1:
Kod
//Değişkenleri tanımlayalım.
$ad="Aloryan";
$ortaad="Exirt";
$soyad="Tahribat";
//Değişken tanımlaması bitti. Şimdi şartlara başlayalım.
if($ad=="Aloryan") {
echo "Benim Adım $ad";
} elseif($ortaad=="Exirt") {
echo "Benim Adım $ad $ortaad";
} elseif($soyad=="Tahribat") {
echo "Benim Soyadım $soyad";
} else {
echo "Bir adını yazdıramadın be";
}
//Şartlarda bitti. Hadi görüşürüz. Diğer örneğe geçelim.
ÖRNEK 2:
Kod
//Değişkenleri tanımlayalım.
$ad="Aloryan";
$ortaad="Exirt";
$soyad="Tahribat";
//Değişken tanımlaması bitti. Şimdi şartlara başlayalım.
if($ad!="") {
echo "Benim Adım $ad";
} elseif($ortaad!="") {
echo "Benim Adım $ad $ortaad";
} elseif($soyad!="") {
echo "Benim Soyadım $soyad";
} else {
echo "Bir adını yazdıramadın be";
}
//Şartlarda bitti. Hadi görüşürüz. Diğer örneğe geçelim.
----------------------------------------
Php Öğreniyorum 5 - Program Denetleme İşlemler İ
ÖRNEK 3:
Kod
//Değişkenleri tanımlayalım.
$ad="Aloryan";
$ortaad="Exirt";
$soyad="Tahribat";
//Değişken tanımlaması bitti. Şimdi şartlara başlayalım.
if($ad=="Aloryan" && $ad!="") {
echo "Benim Adım $ad";
} elseif($ortaad=="Exirt" || $ortaad!="") {
echo "Benim Adım $ad $ortaad";
} elseif($soyad=="Tahribat" AND $soyad!="") {
echo "Benim Soyadım $soyad";
} elseif($ad!="" AND $soyad!="") {
echo "Benim adım $ad ve soyadım $soyad";
} else {
echo "Bir adını yazdıramadın be";
}
//Şartlarda bitti. Hadi görüşürüz.
Bakın size farklı if kullanım örneği vereyim. Görürseniz şaşırmayın.
1 tanesi şu şekilde;
if(şartlar):
şart doğru ise yapılacaklar
elseif(diğer şartlar):
diğer şartlar doğruysa işlem yapalım.
else:
koşullar doğru değilse burayı çalıştır.
endif;
Bir başkası da şu şekilde;
if(şartlar)
işlemi yap
Gelelim konuyu biraz zorlaştırmaya.
isset(): Bir değişkenin değeri olup olmadığına bakarız. Değeri varsa TRUE sonucunu verir, yoksa FALSE sonucunu verir.
Hemen örnekleyelim.
Kod
if(isset($ad)) {
echo "Değişkenin değeri var";
} else {
echo "Değişkende değer yok";
}
empty(): Aynı isset gibidir. Tek farkı ters çalışır. Yani değişkende değer varsa FALSE, değer yoksa TRUE değerini verir.
Kod
if(empty($soyad)) {
echo "Değişkenin değeri yok";
} else {
echo "Değişkende değer var";
}
Birde bunlarla ilgili farklı kullanımlar gözünüze çarpabilir. Bu kullanım şekli de şu şekildedir. Komutları birbirinin yerine kullanmak.
Kod
if(!isset($ad)) {
echo "Değişkenin değeri yok aynı empty() fonksiyonunda olduğu gibi.";
} else {
echo "Değişkende değer var";
}
YADA
Kod
if(!empty($soyad)) {
echo "Değişkenin değeri var isset yerine !empty kullanabiliriz.";
} else {
echo "Değişkende değer yok";
}
Bu örneklerde ! işareti anlayacağınız üzere değilse yada tersi demektir.
is_integer(): Değişkenin tam sayı olup olmadığını kontrol etmek için kullanırız.
Kod
$sayi="15.3";
if(is_integer($sayi)) {
echo "Değişkenin değeri TAM SAYIDIR";
} else {
echo "Değişken değeri tam sayı DEĞİLDİR";
}
Sonuçları tabii sizler deneyerek göreceksiniz.
NOT: Örneklerde işaretlerini kullanmadığımı görebilirsiniz. Daha önceki derslerde nasılsa şablonu verdim. Siz örnekleri denerken gerekli eklemeyi yaparsınız. Gerekli olmadığı sürece PHP başlangıç () ifadelerini kullanmayacağım.
Ders kısaca bu şekilde. Diğer denetleme komutlarına devam edeceğim. Şimdilik if öğreniyoruz. Örnek çıkarmakta zorluk çekenler için birkaç soru vereyim. Sorular önceki konuları da kapsayacak şekildedir. Siz bunları PHP kodu haline getirin. UNUTMADAN bilenler soruları cevaplamasın. Sadece yanlış yazıldığında neresi yanlış onu söyleyebilirler.
-------------
Php Öğreniyorum 5 - Program Denetleme İşlemler i
SORU 1: Okulda matematik sınavlarına girdim. Dersi geçebilmem için almam gereken notlar şu şekilde olmak zorunda. İLK sınav: 70, İKİNCİ sınav 50. Eğer bu notları ve üzerini sağlıyorsam program bana DERSİ GEÇTİN diyecek. Yoksa "DERSTEN KALDIN" diyecek. Bunu nasıl yapabilirim?
SORU 2: Elimde 3 tane değişken var. Bunlar ve değerleri sırayla şu şekilde.
$adim="Aloryan Exirt";
$soyadim="Tahribat";
$telefonum=2662456637;
1- Eğer telefon numaram boş değilse adımı ve soyadımı göster.
2- Eğer adım ve soyadım boş değilse telefon numaramı göster.
3- Eğer sadece adım boşsa telefonumu göster.
Bu işlemleri yapan programı nasıl yazarım?
SORU 3: Seyahat planları yapmaktayım. Cebimde 10.50 YTL param var. Bu paranın 5.25 YTL si ile bilet aldım. Geriye kalan para ile de yemek yedim. Cebimde hiç para kalmadı. Yemeğe ne kadar para verdim? Eğer yemeğe verdiğim para, bilet parasından fazlaysa ekrana "KAZIKLANDIN" değilse "NERDE BU UCUZ YER" yazsın. Bunu nasıl yaparım?
SORU 4: Bir satış scripti yapmak istiyorum. Satılan ürünler süreli ürünler. Bir ürün 1 ay, 3 ay, 6 ay yada 1 yıl gibi bir süreyle alınabiliyor. Eğer kişi o üründen 3 aylık alırsa %10, 6 aylık alırsa %20, 1 yıllık alırsa %40 indirim yapmak istiyorum. Bunu nasıl yapabilirim?
switch komutu
Aslında bunu PHP-Nuke kullanan arkadaşlar modüllerde görebiliyorlar. İşte şimdi bu modüllerde kullanılan komutu öğreniyoruz. Kısacası PHP dersleri sonunda sizlerde kendi blok ve modüllerinizi rahatlıkla yazabilecek ve/veya ufak sorunları çözebileceksiniz. İş mantığını öğrenmekte.
Bu komutta bir değişken oluşturulur ve değişik seçenekler oluşturulur. Bu değişken hangi seçeneğe uyuyorsa o komutlar yazılır.
NOT: Switch komutu yerine if komutu da kullanılabilir. Yani switch ile yaptığımızı if ile de yapabiliriz. Ancak ileriki derslerde göreceğiniz üzere switch komutu if komutuna göre biraz daha hızlı çalışır. Ama dikkat edelim, bütün if komutlarını switch ile yazamayız. Yani switch komutu if komutu yerine duruma göre kullanılabilir yada kullanılamaz. Bunu zamanla görürsünüz. Gelelim nasıl yazılır sorusuna.
switch($degisken) {
case "birinci şart":
bu şart doğru ise yapılacak komutlar
break;
case "ikinci şart":
bu şart doğru ise yapılacak komutlar
break;
..//bu şekilde uzatabiliriz. Limitimiz yok//
default: ##Buraya dikkat noktalı virgül değil iki nokta üst üste kullanıyoruz.##
yukarıda yazılan şartlardan hiçbiri yerine gelmiyorsa yapılacak komutlar
break;
}
Önemli bir ayrıntıya değineyim.
case ile yapılan her şart kontrolünden sonra break komutu ile sonlandırmamız gerekiyor. Sonlandırmazsak ne olur? Şart gerçekleşse bile şartın bitmediğini görmediğinden diğer şartları da dener ve sonuç oluşmaz. Sizde ortada kalırsınız Very Happy
Konuyu fazla uzatmadan basit bir örnek veriyorum.
Kod
switch($dil) {
case "PHP":
echo "PHP dilini öğreniyoruz";
break;
case "ASP":
echo "ASP dilini öğreniyoruz";
break;
case "Perl/CGI":
echo "Perl ile CGI programlama öğreniyoruz";
break;
default:
echo "Hiçbir dili öğrenmiyoruz. Boş boş oturuyoz";
break;
} //switch komutunu sonlandırmayı unutmayın.
Şimdi var mısınız basit bir modül yazalım? Uygulamaya başlıyoruz kemerlerinizi bağlayın Daha dur bir şey öğrenmedik ne modülü diyenleriniz olabilir. Bayağı bir şey öğrendik. Geri dönün ve dersleri tekrar edin.
Modüle başlamadan önce modüllerle ilgili ön bilgi vereyim.
Modüller PHP-Nuke ile yaptığınız sitede sayfalarınızı oluşturan eklentilerdir. Örneğin şu anda bu yazıyı okuduğunuz forum sayfası Forums modülüyle karşınıza gelmektedir. Modüllere 404 - Not Found şeklinde girersiniz. Modül Adı yerine modules klasöründeki, modülün klasörünün ismini (BÜYÜK-küçük harf ayrımına dikkat ederek) yazarız.
Öncelikle modules klasörüne PHP_Modul1 adında bir klasör ve içerisine boş bir tane index.php dosyası oluşturun. index.php dosyasını açın ve yazmaya başlıyoruz.
Kod
yazarak PHP komutunun başladığını belirtiyoruz. Modülümüzde 3 tane sayfa olacak. Bir tanesi giriş, 2 tanesi ise alt sayfa şeklinde. Hemen ilk yazılması gerekenleri yazıyoruz.
---------------------------
Php Öğreniyorum 5 - Program Denetleme İşlemler i
Kod
if ( !defined('MODULE_FILE') )
{
die("You can't access this file directly...");
}
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
Bunları yazdıktan sonra içeriğimizi yazalım.
Kod
switch($degisken) { //switch başladı...
// modules.php?name=PHP_Modul1°isken=php şeklinde link verdiğimizde çıkacak sayfa başladı....
case "php":
echo "PHP bir script dilidir. Yani .exe yada .com uzantısına sahip programlar gibi derlenmesine gerek yok. Ancak PHP scrptlerinizi çalıştırabilmeniz için bu dilden anlayan bir programa ihtiyacınız var.Bu programın web server tarafından çalıştırılabilir olması gerekmektedir. Başka bir ifadeyle web server programınızı (Apache, PWS yada ISS gibi) PHP anlar hale getirmeniz gerekmektedir.";
break;
// modules.php?name=PHP_Modul1°isken=php şeklinde link verdiğimizde çıkacak sayfa bitti.
//modules.php?name=PHP_Modul1°isken=html şeklinde link verdiğimizde çıkacak sayfa başladı...
case "html":
echo "Hyper Text Markup Language( Hiper Metin İşaret Dili ) kısaca HTML diye adlandırdığımız kodları anlatmaya çalışacağım.
Anlatıma başlamadan yapmış olduğum dil hatalarından dolayı özür dileyerek affınıza sığınıyorum..
Anlatıma 0 dan başlıstarhackz.comstarhackz.comstarhackz.comstarha ckz.comstarhackz.com profesyonele doğru ilerleteceğiz.Bu yazı dizimizde anlatılanları sizinde harfiyen uygulamanız gerekiyor diye düşünmekteyim....";
break;
//modules.php?name=PHP_Modul1°isken=html şeklinde link verdiğimizde çıkacak sayfa bitti...
#Modüle ilk girişte çıkacak sayfa başladı.
default:
echo "
Merhaba,
Bu benim ilk modül çalışmam. Modülüme hoşgeldiniz. Bir iki alt sayfa yaptım. Siz
bu alt sayfalara gönderecem. İlk sayfamız PHP üzerine kısaca bir yazı, ikinci
sayfamız ise HTML üzerine kısa bir yazı.
İlk sayfamıza gitmek için
tıklayın.
İkinci sayfamıza gitmek için
tıklayın.
NOT: switch komutunda $degisken adında bir değişken tanımladık.
Buna göre linkleri şu şekilde vermeliyiz.
PHP Sayfamıza modules.php?name=PHP_Modul1°isken=php
HTML Sayfamıza modules.php?name=PHP_Modul1°isken=html
";
break;
#Modüle ilk girişte çıkacak sayfa bitti.
}//switch bitti.
En modül bitti. Sonuna
Kod
?>
yazarak PHP nin bittiğini gösteriyoruz. Burada aklınıza takılan şeyler için önceki dersleri incelemenizi öneririm.
Modülün index.php dosyasını toplarsak şu hale gelmiş olacak.
Kod
if ( !defined('MODULE_FILE') )
{
die("You can't access this file directly...");
}
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
switch($degisken) { //switch başladı...
// modules.php?name=PHP_Modul1°isken=php şeklinde link verdiğimizde çıkacak sayfa başladı....
case "php":
echo "PHP bir script dilidir. Yani .exe yada .com uzantısına sahip programlar gibi derlenmesine gerek yok. Ancak PHP scrptlerinizi çalıştırabilmeniz için bu dilden anlayan bir programa ihtiyacınız var.Bu programın web server tarafından çalıştırılabilir olması gerekmektedir. Başka bir ifadeyle web server programınızı (Apache, PWS yada ISS gibi) PHP anlar hale getirmeniz gerekmektedir.";
break;
// modules.php?name=PHP_Modul1°isken=php şeklinde link verdiğimizde çıkacak sayfa bitti.
//modules.php?name=PHP_Modul1°isken=html şeklinde link verdiğimizde çıkacak sayfa başladı...
case "html":
echo "Hyper Text Markup Language( Hiper Metin İşaret Dili ) kısaca HTML diye adlandırdığımız kodları anlatmaya çalışacağım.
Anlatıma başlamadan yapmış olduğum dil hatalarından dolayı özür dileyerek affınıza sığınıyorum..
Anlatıma 0 dan başlıstarhackz.comstarhackz.comstarhackz.comstarha ckz.comstarhackz.com profesyonele doğru ilerleteceğiz.Bu yazı dizimizde anlatılanları sizinde harfiyen uygulamanız gerekiyor diye düşünmekteyim....";
break;
//modules.php?name=PHP_Modul1°isken=html şeklinde link verdiğimizde çıkacak sayfa bitti.
#Modüle ilk girişte çıkacak sayfa başladı.
default:
echo "
Merhaba,
Bu benim ilk modül çalışmam. Modülüme hoşgeldiniz. Bir iki alt sayfa yaptım. Siz
bu alt sayfalara gönderecem. İlk sayfamız PHP üzerine kısaca bir yazı, ikinci
sayfamız ise HTML üzerine kısa bir yazı.
İlk sayfamıza gitmek için
tıklayın.
İkinci sayfamıza gitmek için
tıklayın.
NOT: switch komutunda $degisken adında bir değişken tanımladık.
Buna göre linkleri şu şekilde vermeliyiz.
PHP Sayfamıza modules.php?name=PHP_Modul1°isken=php
HTML Sayfamıza modules.php?name=PHP_Modul1°isken=html
";
break;
#Modüle ilk girişte çıkacak sayfa bitti.
} //switch bitti.
?>
---------------------------
PHP Geniş Anlatım 4
Php Öğreniyorum 6 - Döngü İşlemler i
öngüleri size kısaca şöyle tanımlayayım. Diyelim bir veritabanınızda 1000 adet veri var ve bu verileri bir sayfada göstermek istiyorsunuz. Bunu en kolay olarak döngülerle sağlarsınız. Konu çok karmaşık değil, üstelik çok basit.
------------------------------------------------------------------
for ile döngü yapmak
for döngüsü bir şarta bağlı olarak istenen miktarda komutu yada veriyi tekrarlar. Yazım şekli basitçe söyledir.
for (değişken;şart;artma miktarı) {
şart uyuyorsa yapılacak komutlar
}
Şimdi bir örnek yazarak konuyu pekiştirelim. Yapacağım işlem programa 1-20 ye kadar saydırmak.
Kod
for($sayi=1;$sayi<=20;$sayi++) {
echo $sayi."-";
}
Gördüğünüz gibi çok basit. Kodları açıklayayım.
İlk satırda for döngüsüne başladım ve $sayi adında bir değişken tanımlayıp değerini 1 verdim. Sonrasında $sayi değişkeni 20 den küçük yada ona eşit olmalı dite bir şart koydum. Ve $sayi değişkeninin değerinin birer birer artmasını sağladım.
İkinci satırda ekrana yazdırmasını söyledim. Son satırda ise for döngüsünü kapattım.
$sayi++ demek $sayi değişkenini 1 arttır demektir. Yani $sayi=$sayi+1; değilde $sayi++; kullanabiliriz.
Ya hep böyle mi yazmak lazım, ben başka kodlarda gördüm diyenleriniz olabilir. Elbette hep bu şekilde bir yazım gerekmez. Aynı örneği farklı şekillerde yazayım.
2. YAZIM
Kod
for($sayi=1;$sayi<=20;$sayi++): // iki nokta üst üste var dikkat.
echo $sayi."-";
endfor;
3. YAZIM
Kod
for($sayi=1;$sayi<=20 { //Yazıma dikkat. Kullanılmayan yerine ; kullandım.
echo $sayi."-";
$sayi++;
}
4. YAZIM
Kod
for($sayi=1;$sayi<=20; print $sayi."-", $sayi++);
//Dikkat print yerine echo kullanılamaz.
5. YAZIM
Kod
$sayi=1;
for(; {
if($sayi>20) {
break;
}
echo $sayi."-";
$sayi++;
}
6.YAZIM
Kod
For($sayi=1;;$sayi++) {
if($sayi>20) {
break;
}
Echo $sayi."-";
}
Aklıma gelenler bunlar. Hangisi hoşunuza giderse onu kullanın. Ben hangi şekli kullanıyorum diye merak ederseniz programın akışına göre hangisi uygunsa onu kullanıyorum. For döngüsü bu kadar.
SORU: 2 den 100 e kadar ikişer ikişer yazdırın bakalım.
------------------------------------------------------------------
While ile döngü yapmak
Kodlara az çok bakanlar bunu sık sık görmüşlerdir. Veritabanındaki verileri ekrana yazdırıyoruz. En çok kullanılan döngülerden biridir. Bir şartın gerçekleşmesi yada gerçekleşmemesi durumunda döngü çalışır.
Altını çizerek belirteyim ki; döngülerde en dikkat edilmesi gereken şey döngünün sonsuz döngüye sokulmaması gerektiğidir. Çünkü döngüler şart gerçekleşinceye kadar tekrarlanır.
Yazım şekli basitçe şu şekildedir.
while(şart) {
şart uygunsa yapılacak komutlar
}
yada
while(şart):
şart yerine geldiyse yapılacak komutlar
endwhile;
--------------------
Php Öğreniyorum 6 - Döngü İşlemler i
Şimdi for döngüsü ile yaptığımız örneği while ile yapalım.
Kod
$sayi=1;
while($sayi<=20) {
echo $sayi."-";
$sayi++;
}
Gördünüz mü for döngüsü ile arasında bir farkı yok. Örneği açıklayayım kafanız bulanmasın.
İlk satırda $sayi=1; ile $sayi adlı değişkenimize 1 değerini verdik. İkinci satırda döngüyü başlatarak şartımızı belirledik. 3. satırda ekrana yazdırdım. 4. satırda yine bir arttır dedik ve sonunda döngüyü kapattık.
Evet şimdi while ile başka bir örnek vereyim.
Kod
echo " ";
$dongu=0;
while($dongu<20) {
$sayi=5+$dongu;
echo "
$dongu
+
5
=
$sayi
";
++$dongu;
}
echo " ";
Evet biraz farklı bir şey yaptım. Şimdi de başka bir örnek;
Kod
echo " ";
$basla=1;
while($basla<=10) {
$sayi=5*$basla;
echo "
$basla
x
5
=
$sayi
";
$basla++;
}
echo " ";
While ile işimiz bu kadar. SQL sorgularında kullanım için SQL derslerini beklemelisiniz.
------------------------------------------------------------------
do ... while döngüsü
Bu döngüyü şöyle açıklayayım. Bazen öyle bir durumla karşılaşırız ki, döngüde yer alan şartın gerçekleşmemesi durumunda bile döngünün bir kere çalıştırılması gerekebilir. Neden bahsediyom ben şimdi anlarsınız.
Yazım şekli şöyledir.
do {
Şart uygunsa yapılacak komutlar
}
while(şart);
Off yine kafanız karıştı değil mi? for ve while kullanırken yazdığımız örneği bununla yazalım mı?
Kod
$sayi=1;
do {
echo $sayi."-";
$sayi++;
}
while($sayi<=20);
Şimdi bunun diğer döngülerden farkı nedir? Dikkat ederseniz önce işlem yapıyor sonra şartı kontrol ediyor. Şartı while($sayi<=20); ile sınıyor. Bakın şimdi sonraki şartı değiştirelim ve şu hale getirelim.
Kod
$sayi=1;
do {
echo $sayi."-";
$sayi++;
}
while($sayi<1);
Birde bu şartı koyduğumuz for döngüsü yazalım.
Kod
for($sayi=1;$sayi<1;$sayi++) {
echo $sayi."-";
}
-------------------------
Php Öğreniyorum 6 - Döngü İşlemler i
İkisini ayrı ayrı deneyin.
İlkinde $sayi değişken içeriğinde 1 yazdığı için onu ekrana gösterecek ve sonra şartı kontrol edecek. Şart ona 1 den küçükse diyor. İşte bunu görünce tak diye duracak.
For döngüsünde ise $sayi değişkenine 1 değerini verdik. Şartımızda do döngüsünde kullandığımız şart ile aynı. Yani $sayi 1 den küçükse dedik. Sonuç ne oldu? do-while döngüsü bir kere dönüp şartı kontrol ettiğinden ekrana 1 yazdırdı, for ise ekrana hiç birşey yazdırmadı.
Kafanızın karışıklığı gitmiştir umarım. Şimdi geçelim diğer döngüye.
------------------------------------------------------------------
foreach döngüsü
Bu döngü aslında dizilerle (array) beraber kullanılır. Diğer döngülerden daha kısa ve anlaşılırdır. Ancak dizileri görmediğimiz için ben konuyu ufacık bir örnekle kapatacam.
Kod
$dizi=array('1','2','3','4','5');
foreach ($dizi as $icerik) {
echo $icerik."-";
}
Aynı işlemi while ile yapmak isteseydim şöyle yapardım yada daha farklı yapılabilir. Şimdilik dizileri görmediğimizden bu şekilde veriyorum.
Kod
$dizi=array('1','2','3','4','5');
while(list($anahtar, $icerik)=each($dizi)) {
echo $icerik."-";
}
Aradaki farka bir bakın. foreach ile ne kadar basitçe dizilerin içeriğini ekrana basıyoruz değil mi? foreach konusuna diziler konumuzda daha ayrıntılı değineceğim.
Bir sonraki dersimizde Dizi nedir? Nasıl yazılır? Dizileri sıralamak, içine değer sokmak, bir değeri silmek, saymak, birleştirmek..vb işlemleri.. göreceğiz.
------------
Php Öğreniyorum 7 - Diziler
Bu konu aslında uzun bir konu. Ancak şimdilik konuyu fazla uzatmayacam.
Değişkenler için PHPnin olmazsa olmazları demiştim. Değişkenleri bilmiyorsanız, onların kullanımını bilmiyorsanız bu iş olmaz. Diziler içinde şunu söyleyeyim. Dizileri bilmiyorsanız birçok kolaylığı bilmiyorsunuz demektir.
ÖNEMLİ: Sayı sayma işlemleri 1 den değil 0 dan başlar. Bunu unutmayın.
Dizi (array) nedir? Bir değişkene teorik olarak sınırsız sayıda veri yüklememize yarayan bir fonksiyondur. Basit olarak; bir veritabanındaki verileri listelemek için her bir veri için değişken tanımlama zorunluluğunu ortadan kaldırır.
Dizi tanımlamak için bir değişken adı yazarız ve sonuna köşeli parantez (süslü parantezde olabilir) kullanırız.
$degisken[]="Selam";
$degisken[]="Millet Bu Dersimizde";
$degisken[]="Dizileri işliyoruz";
Şimdi $degisken adlı değişkene 3 tane veri girdik. Bu değişken [] işaretleri nedeniyle dizi oldu. Şimdi bunu ekrana yazdırmaya çalışalım.
Kod
$degisken[]="Selam";
$degisken[]="Millet Bu Dersimizde";
$degisken[]="Dizileri işliyoruz";
echo $değisken[];
Eeee yazmadı. Boş bi sayfada Array diye bir şey gösterdi. Demek ki bu şekilde gösteremiyoruz. Kodu şu hale getirelim.
Kod
$degisken[]="Selam";
$degisken[]="Millet Bu Dersimizde";
$degisken[]="Dizileri işliyoruz";
print_r($değisken);
Bu şekle getirince de içerisini olduğu gibi gösterdi. Biz dizi tanımlastarhackz.comstarhackz.comstarhackz.comstar hackz.comstarhackz.com aslında ne şekle soktuğumuz görülüyor. (print_r fonksiyonu dizi içini görmemizi sağlar)
Array (
=> Selam [1] => Millet Bu Dersimizde [2] => Dizileri işliyoruz )
Bakın gördünüz mü? Dizilerde bir sıra var. Bu sıra 0 dan başlıyor. Bizim aslında oluşturduğumuz şekil buymuş. Peki bütün içeriği ekrana bu şekilde gösterdik. Bu şekilde gösterim tabii ki yapmak istemeyiz. İstediğimiz sıradaki içeriği nasıl gösteririz?
Kod
$degisken[]="Selam";
$degisken[]="Millet Bu Dersimizde";
$degisken[]="Dizileri işliyoruz";
echo $degisken[0];
Gördüğünüz üzere ilk değeri gösterttik. Ekrana Selam" çıkacak. Kodda yer alan 0 (sıfır) sıra numarasını işaret eder. Verdiğim ilk örnekte sıra numarasını biz oluşturmadık. İstersek bizde sıra numarası tanımlayabiliriz.
Kod
$degisken[a]="Selam";
$degisken[b]="Millet Bu Dersimizde";
$degisken[c]="Dizileri işliyoruz";
echo $degisken[c];
Burada diziye sıra numarasını biz verdik. Biraz daha karmaşıklaştıralım.
Kod
$degisken[a][1]="Selam";
$degisken[a][2]="Millet Bu Dersimizde";
$degisken[a][3]="Dizileri işliyoruz";
echo $degisken[a][3];
Evet bu şekilde iç içe iki dizi kullanmış olduk. Bu konuda fazla durmadan ilerliyorum. Dizileri hep bu şekilde mi tanımlamak zorundayız? Elbette hayır. Şimdi asıl yönteme yani array kullanımına geçiyoruz.
Kod
$degisken=array(
1=>"Selam",
2=>"Millet",
3=>"Tahribat"
);
print_r($degisken);
Karşımıza;
Array ( [1] => Selam [2] => Millet [3] => Tahribat )
şeklinde bir sonuç çıkacak. Sıra numarasını biz girdiğimiz için bu halde gösterdi. İstersek numara girmeden de yapabilirdik.
Kod
$degisken=array(
"Selam",
"Millet",
"Tahribat"
);
print_r($degisken);
Bu durumda ekrana;
Array (
=> Selam [1] => Millet [2] => Tahribat )
şekli çıkardı. Sizlere tavsiyem sıra bilgisi vermeyi unutmayın. Yoksa ekrana yazdırma işlemlerinde bayağı ter dökersiniz. Şimdi biraz daha zorlaştırayım.
---------------------------
Php Öğreniyorum 7 - Diziler
$degisken=array(
dersler"=>array(php","asp","perl"),
okul"=>array(ilkokul","lise"),
numara"=>array(1,3,5,7,9,2,4,6,8)
);
İç içe bir biri array kullandım değil mi? Şimdi buradan veri alalım.
Kod
$degisken=array(
"dersler"=>array("php","asp","perl"),
"okul"=>array("ilkokul","lise"),
"numara"=>array(1,3,5,7,9,2,4,6,8)
);
echo $degisken["dersler"][0];//PHP sonucunu verir.
echo "
";
echo $degisken['okul'][1]; //lise sonucunu verir.
Dizi tanımlamak ve basitçe gösterimi bu şekildedir. Şimdi dizilerde diğer işlemlere geçelim.
Bir dizide kaç adet veri olduğunu öğrenmemiz gerekebilir. Bu tür durumlarda count yada sizeof komutları kullanılır.
$dizi=array(1,3,5,7,9);
echo count($dizi);
echo
";
echo sizeof($dizi);
İkisi de bize aynı sonucu verecektir.
Kod
$dizi=array(a","b","c","d",1,3,4);
foreach ($dizi as $veriler) {
echo $veriler -";
}
Bu şekilde karşımıza;
a -b -c -d -1 -3 -4- sonu çıkacaktır.
Şimdi for ve while döngülerini kullanarak aynı diziyi ekrana yazdıralım.
Kod
$dizi=array("a","b","c","d",1,3,4);
for ($i=0;$iecho "$dizi[$i] -";
}
Birde aynı işlemi while ile yapıyoruz.
Kod
$dizi=array("a","b","c","d",1,3,4);
$i=0;
while ($iecho "$dizi[$i] -";
$i++;
}
Gösterim değişmedi. Aynı şekilde gösterdi. Yalnız fazladan count kullanarak dizi içeriğinde kaç veri var onu saydık ve $dizi[$i] ile ekranda göstermeye çalıştık.
Sıra numarasını da ekrana yazdıralım.
Kod
$dizi=array("a","b","c","d",1,3,4);
foreach ($dizi as $sira=>$veriler) {
echo "SIRA: $sira VERİSİ: $veriler
";
}
Dizi içeriğini ekranda gösterdik. Bu şekilde sizde örnekler yaparak dizileri mantık olarak öğrenebilirsiniz.
-------------
Php Öğreniyorum 8 - Fonksiyonlar
Geldik işimize en çok yarayacak konulardan birine. Fonksiyonları size şöyle anlatacağım.
Diyelim ki büyük bir proje hazırlıyorsunuz. Sık kullanacağınız komutları bir fonksiyon içinde yazarak, gerektiğinde çağırırsınız. Fonksiyon çağrıldığı yerde içerisinde bulunan komutları işler. Çağrılmadan bir işlem yapmaz. Örneğin; sürekli veritabanı bağlantısı kullanıyorsanız bunu bir fonksiyona yazarak gerektiğinde çağırarak bağlantıyı kurmuş olursunuz. Bu size hem zamandan tasarruf hem de daha kısa kod yazmanızı sağlar.
Genel yazım şekli aşağıdaki gibidir.
function fonksiyon_adi(degişken1,$değişken2 .) {
yapılacak komutlar
}
İlk fonksiyonumuzu yazalım.
Kod
function ilk_fonksiyon() {
echo "Bu bizim ilk fonksiyonumuz";
}
Fonksiyon çağrılmadığı için ekranda hiçbir şey göstermez. Kodumuzu şu hale getirip sonucu gözlemleyelim.
Kod
function ilk_fonksiyon() {
echo "Bu bizim ilk fonksiyonumuz";
}
ilk_fonksiyon();
yada
Kod
function ilk_fonksiyon() {
echo "Bu bizim ilk fonksiyonumuz";
}
echo ilk_fonksiyon();
Bu basit bir fonksiyondur. Şimdi fonksiyona değişken ile veri gönderelim.
Kod
function ilk_fonksiyon($icerik) {
echo $icerik;
}
echo ilk_fonksiyon("Ne yazarsam onu göster bakayım");
Evet fonksiyona değer gönderdim. Şimdi biraz değişkenlerde gördüklerimizi hatırlayın ve aşağıdaki örneği inceleyin.
Kod
function ilk_fonksiyon(&$icerik) {
$icerik.=" Online";
}
$ek="Tahribat";
ilk_fonksiyon($ek);
echo $ek;
Dersler zorlaşıyor diye düşünebilirsiniz. Haklısınız dersler zorlaşıyor. Çok fazla açıklama yapmama gerek yok. Eski dersleri takip ettiyseniz ve örnekleri tek tek inceledinizse bu dersleri anlamakta zorluk çekmezsiniz.
Kodumuza geri dönersek; Önce fonksiyon tanımladım. Fonksiyona değişkeni &$icerik gibi eklediğimi gördünüz. Bu durumu birazdan açıklayacağım. Sonraki satırda $icerik.= diyerek değişkenin devamını olarak gideceğini söyledim. Sonra $ek diye bir değişken tanımladım ve değer atadım. Fonksiyonu tanımladığım değişkenle çağırdım. Değişken içeriği fonksiyona gitti. Fonksiyonda kendisine gelen bu veriyi aldı ve $icerik adlı değişkenin başına ekledi. Sonrasında $ek adlı değişkenimizi çağırdım.
Off amma karışık oldu be. Very Happy
PHPde şöyle bir olay var.
Kod
$site="Tahribat";
$degisken="site";
echo $$degisken;
Bu kod bize Tahribat sonucu verecektir. Kodu aslında şöyle de yazabilirdiniz;
Kod
$site="Tahribat";
echo $site;
İlk örnekteki $$ yazınca PHP $degisken adlı değişkenin site adlı bir değişkenin değerini aldığını bilecek ve onu gösterecektir. İlk örnekteki $$degisken yerine $degisken yazsaydık karşımıza site yazısı çıkacaktı. Bu yöntem sayesinde az bir kodla yüzlerce veriyi ekrana yazdırabiliriz.
Peki &$ olayı nedir? İki değişken arasındaki veri alışverişinin dinamik olmasını sağlar diyebilirim. Örnekleyelim;
Kod
$site="Tahribat";
$degisken=&$site;
$site="Online";
echo $degisken;
--------------------
Php Öğreniyorum 8 - Fonksiyonlar
Sonuca bakarsanız karşınıza Online gelecektir. Yani bakın değişken içeriğini alt tarafa yazdığımız bir başka değişkenle değiştirdim. Off amma kafanız karıştı Very Happy Peki olayı şöyle anlatayım. Birinci değişkenin tuttuğu değeri değiştirmeden, ikinci değişkene birinci değişkenin değerini dinamik olarak atadık. Dinamik atama nedeniyle birinci değişkenin değeri değiştiği anda ikinci değişkenin değeri de değişecektir. Biz ikinci değişkeni çağırdığımız sürece istediğimiz an değerleri değiştirebiliriz.
Kafa karıştırmaya devam etmeyeyim ve fonksiyonlara geri döneyim. Geriye doğru örneklere bakarsanız bir örnekte bu olayı kullandım. Şimdi fonksiyonlarla bir çarpma işlemi yapacağım.
Kod
function carp($sayi1,$sayi2) {
return $sayi1*$sayi2;
}
echo carp(10,5);
Örnek hoş güzel oldu ancak ya ikinci sayıyı girmeyi unutursam ne olur? Tabii ki hata verecektir. Warning: Missing argument 2 for carp() in deneme.php online 2 gibi bir hata olması hoş olmaz. Bu durumu düşünerek birkaç alternatif üretin bakalım. Bu soruyu cevaplayanlar önceki konuları az çok öğrenmişlerdir.
Şimdi Global tanımlamaları görelim.
Şimdi şöyle bir örnek yazayım.
Kod
$icerik="PHP Derslerinde Fonksiyonları İşliyoruz";
function icerigi_cagir() {
echo $icerik;
}
icerigi_cagir();
Fonksiyon dışında bir değişken tanımladım ve fonksiyon içinde değişkeni göster dedim. Ancak ekrana hiçbir şey çıkmadı. Çünkü değişkeni fonksiyonda tanımlamadık. Değişkeni fonksiyonda tanımlamadan kullanmanın yolu yok mu? Elbette var. global tanımlama yöntemi. Örneği şu hale getirelim.
Kod
$icerik="PHP Derslerinde Fonksiyonları İşliyoruz";
function icerigi_cagir() {
global $icerik;
echo $icerik;
}
icerigi_cagir();
İşte sonuç karşımızda. Fonksiyon dışında birden fazla değişkeni fonksiyona atayalım şimdi. Bu işlem için her değişken arasına global tanımlamada virgül kullanırız.
Kod
$ders="PHP Derslerinde";
$konumuz="Fonksiyonları İşliyoruz";
function icerigi_cagir() {
global $ders, $konumuz;
echo "$ders $konumuz";
}
icerigi_cagir();
Kod
function degisken_cikar() {
$topla=0;
$topla++;
echo $topla." ";
}
degisken_cikar();
degisken_cikar();
degisken_cikar();
degisken_cikar();
Bu örneği çalıştırırsak karşımıza "1 1 1 1" gelecektir. Fonksiyonu 4 defa çağırdığım için bu hale geldi. Ancak $topla++; bir işe yaramadı. Ben 1 2 3 4 çıkmasını istiyorum. Bakın bu durumda örneği ne hale getiriyorum.
Kod
function degisken_cikar() {
static $topla=0; //static ekledim.
$topla++;
echo $topla." ";
}
degisken_cikar();
degisken_cikar();
degisken_cikar();
degisken_cikar();
İşte benim istediğim buydu. Burada static ile değişkeni fonksiyon dışına çıkarmak için bir ön hazırlık yapıyoruz ve fonksiyon her çağrıldığında değerin bir artmasını sağlıyoruz.
Örnekleri biraz geliştirmeye çalışın.
Örneğin global kullanarak basit bir toplama yapalım.
Kod
$x=2;
$y=20;
$z=8;
function topla() {
global $x,$y,$z;
echo "$x+$y+$z="." ".($x+$y+$z);
}
topla();
Fonksiyonlar şimdilik bu kadar.
