SlideShare a Scribd company logo
Kod Akış Kontrol
Yrd.Doç.Dr. Celal Murat KANDEMİR
ESOGÜ – Eğitim Fakültesi - BÖTE
twitter.com/cmkandemir
Contents
1. Koşul cümleleri (Conditional statements)
2. Döngüler (Loops)
3. Fonksiyonlar ve Geri Dönüş Değerleri
4. Include ve require
5. Değişken kapsam alanı
Koşul İfadeleri
Koşul İfadeleri - if
if yapısı eğer belli bir koşul sağlanırsa kodun
çalıştırılmasını sağlar
Not: atamalar atanmış bir değer olarak geri döner
$a = 5; $b = 7;
if ($a > $b)
echo "A büyüktür B";
if ($a % 2) {
echo "A is odd";
$b = $a % 2;
echo "A%2 is :".$b;
}
if ($b = $a%2)
echo "A tek - A%2 is :".$b;
Koşul İfadeleri - if
if yapısı eğer belli bir koşul sağlanırsa kodun
çalıştırılmasını sağlar
Not: atamalar atanmış bir değer olarak geri döner
$a = 5; $b = 7;
if ($a > $b)
echo "A büyüktür B";
if ($a % 2) {
echo "A is odd";
$b = $a % 2;
echo "A%2 is :".$b;
}
if ($b = $a%2)
echo "A tek - A%2 is :".$b;
Boolean ifade
Koşul İfadeleri - if
if yapısı eğer belli bir koşul sağlanırsa kodun
çalıştırılmasını sağlar
Not: atamalar atanmış bir değer olarak geri döner
$a = 5; $b = 7;
if ($a > $b)
echo "A büyüktür B";
if ($a % 2) {
echo "A is odd";
$b = $a % 2;
echo "A%2 is :".$b;
}
if ($b = $a%2)
echo "A tek - A%2 is :".$b;
Eğer koşul doğru ise
çalıştırılacak kod bloğu
Parantezleri unutmayın!
If - else
if-else yapı if yapının genişletilmiş şeklidir
ve şartla sağlanırsa bir kodu sağlanmaz ise
diğerini çalıştırmanıza imkan sağlar.
$a = 5; $b = 7;
if ($a > $b)
echo "A büyüktür B";
else
echo "B büyük eşit A";
if - elseif
if-else yapının genişletilmiş biçimidir
else gövdeye yeni koşullar eklemek için
kullanılır
Çoklu elseif ifadeleriniz olabilir.
if ($a > $b)
echo "A büyüktür B";
elseif ($a == $b)
echo "A eşittir B";
else
echo "B büyüktür A";
switch
switch yapı kontrol edilen değişken değerine
bağlı olarak farklı kod bölümlerinin
çalıştırılmasını sağlar.
Çok sayıda if kullanmakla aynıdır.
switch gövdesi "case" cümleleri içerir
Yorumlayıcı değişken değeri ile eşleşen kod
cümlesini bulur ve çalıştırır
switch ($a) {
case 0: echo "A 0’dır"; break;
case 1: echo "A 1’dir"; break;
}
switch (2)
else benzer şekilde default case işleminiz
olabilir
Eğer youmlayıcı herhangi bir case değerini
bulmazsa default seçeneği yürütür
default case zorunlu değildir
switch ($a) {
case 0: echo "A is 0"; break;
case 1: echo "A is 1"; break;
default:
echo "A is … something else";
break;
}
switch(3)
Yorumlayıcı bulduğu case durumu için gerekli
kod cümlelerini çalıştırdıktan sonra bir sonraki
case satırına gider switch bloğundan çıkmaz.
Yukarıdaki örnek "A 0’dır A 1’dir" ekran çıktısı
verir.
Çözüm gerekli olan yerlere break eklenmesidir
default case için de aynı durum söz
konusudur (eğer son durum değilse!)
$a = 0;
switch ($a) {
case 0: echo "A 0’dır";
case 1: echo "A 1’dir";
}
switch(4)
switch davranışına bağlı olarak boş case
durumları da kullanılabilir
break konulmaz, böylelikle yorumlayıcı bir
sonraki satırdan devam edebilir.
Tek bir kod ile birden fazla değeri birleştirmek
amacıyla kullanılabilir.
$a = 0;
switch ($a) {
case 0: echo "A 0’dır"; break;
case 1:
case 2: echo "A 1 veya 2’dir"; break;
}
switch(5)
Herhangi bir skaler tip değişken kullanılabilir
(string, number, boolean, etc)
switch ($name) {
case "Dimitar": echo 1; break;
case "Svetlin":
case "Nakov" : echo 2; break;
case false : echo "İsimsiz"; break;
default : echo "?!"; break;
}
Üçlü Operatör (Ternary Operator)
if-else yapının kısa şeklidir
Koşula bağlı olarak sadece tek bir değer geri
döndürmek amacıyla kullanılabilir.
Söz dizimi:
Aşağıdaki şekilde kullanılamaz:
echo ($a<$b ? "a küçük" : "b küçük");
echo ($a>$b ? "a" : "b")." büyüktür";
$b = ($a % 2 ? 17 : 18);
<condition>?<value if true>:<value if false>
($a > 17 ? echo "a" : echo "b" );
Koşul İfadeleri
whileYapısı
PHP, C stili while döngüsünü destekler
Koşul sağlanana kadar gövdede bulunan kod parçası
çalıştırılır
Gövde bir veya fazla kod satırından oluşabilir
Eğer birden fazla kod satırı var ise eliptik parantez içine
alınmalıdır
Koşul ifadesi boolean değişken tipinde olmalıdır.
$a = 1;
while ($a < 100) {
$a ++;
echo $a;
}
ifade
gövde
do… whileYapı
do-while yapı while-do yapıya benzer
Koşul ifade çalıştırıldıktan sonra kontrol edilir!
Gövdede bulunan kod en az bir kez çalışır!
$a = 1;
do {
$a ++;
echo $a;
} while ($a < 100);
// this will produce 2 3 4 … 100
// the while cycle would output 2 3 4 … 99
ifade
gövde
for Döngüsü
PHP, C stili döngüyü destekler
for döngüsü başlatma, tekrarlanma ve
sonlanma koşul ifadelerinden oluşur
Hiçbiri zorunlu değil
Her ifade virgülle ayrılmış ifadelerden oluşur
for ($i = 0; $i < 10; $i++)
echo $i;
for ($i = 0, $j = 10; ; $i++, $j--)
if ($j > $i)
echo $i;
else break;
for Döngüsü
PHP, C stili döngüyü destekler
for döngüsü başlatma, tekrarlanma ve
sonlanma koşul ifadelerinden oluşur
Hiçbiri zorunlu değil
Her ifade virgülle ayrılmış ifadelerden oluşur
for ($i = 0; $i < 10; $i++)
echo $i;
for ($i = 0, $j = 10; ; $i++, $j--)
if ($j > $i)
echo $i;
else break;
başlangıç
for Döngüsü
PHP, C stili döngüyü destekler
for döngüsü başlatma, tekrarlanma ve
sonlanma koşul ifadelerinden oluşur
Hiçbiri zorunlu değil
Her ifade virgülle ayrılmış ifadelerden oluşur
for ($i = 0; $i < 10; $i++)
echo $i;
for ($i = 0, $j = 10; ; $i++, $j--)
if ($j > $i)
echo $i;
else break;
son koşulu
for Döngüsü
PHP, C stili döngüyü destekler
for döngüsü başlatma, tekrarlanma ve
sonlanma koşul ifadelerinden oluşur
Hiçbiri zorunlu değil
Her ifade virgülle ayrılmış ifadelerden oluşur
for ($i = 0; $i < 10; $i++)
echo $i;
for ($i = 0, $j = 10; ; $i++, $j--)
if ($j > $i)
echo $i;
else break;
tekrarlanma
for Döngüsü
PHP, C stili döngüyü destekler
for döngüsü başlatma, tekrarlanma ve
sonlanma koşul ifadelerinden oluşur
Hiçbiri zorunlu değil
Her ifade virgülle ayrılmış ifadelerden oluşur
for ($i = 0; $i < 10; $i++)
echo $i;
for ($i = 0, $j = 10; ; $i++, $j--)
if ($j > $i)
echo $i;
else break;
gövde
foreach
Foreach diziler üzerinde tekrarlı işlemleri
gerçekleştirmek amacıyla kullanılır.
Dizideki her eleman için gövdede bulunan kod
çalıştırılır.
$value değişkenine dizide o an üzerinde
çalışılan eleman değeri atanacaktır.
$arr = array (1,1,2,3,5,8);
foreach ($arr as $value)
echo $value;
foreach ve İlişkisel Diziler
Foreach ikinci kullanım şekli
Dizideki değere karşılık gelen anahtara
erişilmesini sağlar.
$arr = array ("one" => 1, "two" => 2);
foreach ($arr as $key => $value)
echo $key." => ".$value;
break ve continue
Döngüden break komutu ile çıkılabilir
Bir sonraki döngüye geçmek için ise
continue komutu kullanılır
$i = 0;
while (true) {
$i ++;
if ($i == 10) break; // döngüden çık
if ($i%2 == 0) continue; // sonraki tekrar
echo $i;
}
// ekran çıktısı 1 3 5 7 9
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar, tekil bir isim altında bir araya
getirilmiş koda satırı kümeleridir.
function kelimesi ile bildirim yapılır
Parametre alabilir ve değer dönebilir
Kodun organize edilmesine ve tekrar
kullanılabilmesine olanak sağlar
Echo, print ve diğerleri dahili fonksiyonlardır
function sum ($a, $b) {
return $a + $b;
}
echo sum(5,7); // 12 ekran çıktısı üretir
Fonksiyonlar(2)
Fonksiyon ismi tekil (benzersiz) olmalı
Sınırsız sayıda argüman alabilir
Fonksiyon isminden sonra parantez için
tanımlanır
return ifadesi ile değer geri döndürebilir
Tek parametre kabul der, geri dönüş değeri
Fonksiyon Parametreleri
Fonksiyon parametreleri için ön tanımlı değerlere
sahip olabilir
Kullanılışını kolaylaştırır
Varsayılan değer ,sabit ifade olmalıdır
Fonkisyon bildiriminde varsayılan olarak ayarlanmış
argümanlar, sağ taraftadır!
function max ($a, $b, $strict = true) {
if (strict)
return ($a > $b);
else
return ($a >= $b);
}
echo max(3,3,false);
echo max(4,3,true);
echo max(3,3); // we can omit 3rd parameter
Fonksiyon Parametreleri(2)
Varsayılan olarak PHP argümanları
fonksiyonlara değer olarak geçirir.
Anlamı fonksiyondaki argüman değeri değişimi,
fonksiyon sonlandıktan sonra etkilemeyecektir.
Argümana & ön takısı eklenerek argümanların
referans ile geçirilmesi sağlanır
function double (&$a) {
$a *= 2;
}
$b = 7;
double ($b);
echo $b; // 14 geri döner;
Fonksiyon Parametreleri (3)
PHP supports variable-length function
parameters
Fonksiyona herhangi sayıda argüman
geçirilebilir.
Fonksiyon parametreleri func_num_args()
ve func_get_arg() ile okunabilir
function sum(){
$res = 0;
for ($i=0, $n = func_num_args(); $i < $n; $i++)
$res += func_get_arg ($i);
return $res;
}
echo sum (4,5,6);
Fonksiyon Geri Dönüş Değeri
Fonksiyonlar return kelimesiyle değer geri
döndürebilirler.
Tek argüman alırlar-geri dönecek değer
Fonkisyondan çıkar
Çok değer geri dönülecekse diziler kullanılmalıdır
Fonksiyon değer geri döndürmek zorunda değildir
function foo ($a) {
return true;
// aşağıdaki kod çalıştırılmaz
echo $a + 1;
}
Fonksiyon Geri Dönüş Değeri(2)
Çok değer geri dönmek için sabit uzunluklu
diziler ve list kullanılır
list ifadesi değişkenlere çoklu dizi elemanları
atar
array gibi bir fonksiyon değildir
Sadece sayısal diziler için çalışır ve indisi sıfıdan
başlar
function small_numbers () {
return array (0,1,2);
}
list ($a, $b, $c) = small_numbers();
Değişken Fonksiyonları
PHP değişken fonksiyonları destekler
Eğer değişken ismine parantez eklenirse,
derleyici fonksiyonu bulmaya çalışır.
echo, print vb. bazı dahili fonksiyonlarda
çalışmaz
function foo () {
echo "Bu bir foo";
}
$a = 'foo';
$a(); // foo fonksiyonu çağrılır
Fonksiyonlar İle İlgili Bazı Notlar
Fonksiyonun varlığı kontrol edilebilir
function_exists($name)
Cross-platform scriptler yaratmak için
kullanışlıdır
İç içe fonksiyonlar tanımlanabilir
Dış fonksiyon çağrılmadıkça kullanılamazlar
Fonksiyonlar şarta bağlı tanımlanabilir
Koşula bağlı olarak fonksiyon tanımlanır veya
tanımlanmaz
Include ve Require
Include ve Require
include ve require ifadeleri bir dosya
eklemek ve değerlendirir
Kodu bölmek, birleştirmek ve tekrar kullanmak
için uygundur
Her ikisi de tek parametre alır – dosya adı
Eğer dosya bulunamazsa include warning
üretirken , require fatal error üretir.
Dosya herhangi bir uzantıda olabilir
require "header.php";
echo "body burada yazılır";
require "footer.php";
include_once ve
require_once
include_once ve require_once, include
ve require ifadelerinin farklı formudur.
include ve require ile bir dosya bir çok kez
include edilir
include_once ve require_once eğer
dosya zaten include edildiyse, hiçbir şey olmaz
Örneğin, bir dosya içinde fonksiyonu
tanımladıysanız, çift include "Aynı İsimle
Fonksiyon hali hazırda vardır hatası üretir.
Değişken Etki ALanı
Değişken Etki Alanı
Fonksiyon içinde bildirimi yapılmış değişkenler
fonksiyondan çıkana dek vardırlar
include/require ile eklenen dosyalardeğişken
etki alanını miras alırr
$_GET, $_POST, $_SERVER ve diğer tümleşik
(built-in) değişkenler globaldir.
Kod içinde herhangi bir yerden erişilebilir.
Fonksiyonun dışında tanımlanan değişkenler
içinde erişilebilir değildir.
Global Anahtar Kelimesi
Fonksiyonun dışında tanımlanan değişkenler
içinde erişilebilir değil.
global olarak tanımlanmalı ya da global
ifadesiyle birlikte kullanılmalıdır.
$a = "test";
function $foo () {
echo $a; // ekran çıktısı vermez
}
$a = "test";
function $foo () {
global $a;
echo $a; // "test« çıktısı üretir;
}
Döngüler ve Değişken Etki Alanı
Döngü içinde tanımlı değişkenler, döngü
sonrası erişilebilir değildir.
Örnekte dizi döngüden önce tanımlanmalıdır
for ($i = 0; $i < 5; $i++) {
$arr[] = $i;
}
print_r ($arr); // çıktı oluşmaz
$arr = array();
for ($i = 0; $i < 5; $i++) {
$arr[] = $i;
}
print_r ($arr); // bu kez çalışır
Parantezler Hakkında Notlar
PHP kod HTML içine gömülebildiği gibi, HTML
kod da PHP içene gömülebilir.
echo "Hello John!"; yazmakla
eşdeğerdir.
uzun metinler için oldukça kullanışlıdır
<?php
if ($name == "John") {
?>
Merhaba John!
<?php
}
?>
Dizi Değişkeni Fonksiyonları
Uygulama Notları Örnekleri
44
String Fonksiyonları
Uygulama Notları Örnekleri
45
Matematik Fonksiyonları
Uygulama Notları Örnekleri
46
Kod Akış Kontrol
Sorular?
Örnekler
1. 1’den 50’ye sayıları yazan program yazınız.
2. 1 ve 50 arasındaki 5 ve 7’ye bölünemeyen
sayıları yazınız
3. Write a program that prints HTML table with
N columns and N rows with the numbers 1,
2, 3, ... in its cells for a given N, defined as a
constant
4. İndisli dizide minimal bileşeni bulan program
kodunu yazınız
Örnekler(2)
5.Tanımlanmış sabit N için N! (factorial
1*2*..*N) hesap eden programı yazınız
6.Tanımlanmış sabitler N ve K için N!*K!/(N-K)!
İfadesini hesaplayan programı yazınız

More Related Content

PDF
PHP Temelleri
cmkandemir
 
PPT
Php mysql sunum
Oyunzet Oyunlar
 
PPTX
php nin yapı taşları
forummsn
 
DOC
9. şablonlar
karmuhtam
 
DOC
10. istisna isleme
karmuhtam
 
PPT
PHP Değişkenler-Sabitler
efedincer
 
PHP Temelleri
cmkandemir
 
Php mysql sunum
Oyunzet Oyunlar
 
php nin yapı taşları
forummsn
 
9. şablonlar
karmuhtam
 
10. istisna isleme
karmuhtam
 
PHP Değişkenler-Sabitler
efedincer
 

Viewers also liked (14)

PDF
İnternet Tabanlı Programlama Uygulama Notları
cmkandemir
 
PDF
PHP ve MySQL Bağlantısı - Temel İşlemler
cmkandemir
 
PDF
Matching Game In Java
cmkandemir
 
PDF
Threads and Game Programming In Java
cmkandemir
 
PDF
Chapter 7 - Programming Techniques with Additional Instructions
cmkandemir
 
PDF
Chapter 6 - Introduction to 8085 Instructions
cmkandemir
 
PDF
JDK and Eclipse Installation and Configuration
cmkandemir
 
PDF
openCV and Java - Face Detection
cmkandemir
 
PDF
Web Sitesi Geliştirme Adımları
cmkandemir
 
PDF
CSS Uygulamaları 1
cmkandemir
 
PDF
Canvas Öğrenme Yönetim Sistemi Kullanım Kılavuzu Bölüm 1
cmkandemir
 
PDF
Canvas Öğrenme Yönetim Sistemi Kullanım Kılavuzu Bölüm 2
cmkandemir
 
PDF
impress.js Framework
cmkandemir
 
PDF
CSS - Sunum Bileşenleri
cmkandemir
 
İnternet Tabanlı Programlama Uygulama Notları
cmkandemir
 
PHP ve MySQL Bağlantısı - Temel İşlemler
cmkandemir
 
Matching Game In Java
cmkandemir
 
Threads and Game Programming In Java
cmkandemir
 
Chapter 7 - Programming Techniques with Additional Instructions
cmkandemir
 
Chapter 6 - Introduction to 8085 Instructions
cmkandemir
 
JDK and Eclipse Installation and Configuration
cmkandemir
 
openCV and Java - Face Detection
cmkandemir
 
Web Sitesi Geliştirme Adımları
cmkandemir
 
CSS Uygulamaları 1
cmkandemir
 
Canvas Öğrenme Yönetim Sistemi Kullanım Kılavuzu Bölüm 1
cmkandemir
 
Canvas Öğrenme Yönetim Sistemi Kullanım Kılavuzu Bölüm 2
cmkandemir
 
impress.js Framework
cmkandemir
 
CSS - Sunum Bileşenleri
cmkandemir
 
Ad

Similar to Kod Akış Kontrolü - Döngüler, Fonksiyonlar (11)

PPTX
Sunu algo05
Eyüp Oral
 
PDF
Feature selection - metin madenciliği özellik seçimi
Şahabettin Akca
 
PDF
Php ekşin - Temel php i̇şlemleri
Anka Bilişim Teknolojileri
 
PDF
Sqlmap Analiz
B3mB4m Turk
 
PDF
Ileri seviye javascript by Azer Koculu
mustafa sarac
 
PPTX
Php 3. hafta
farukozturk061
 
PPT
Php MySQL
Oğuzhan TAŞ Akademi
 
ODP
JavaScript sunumu
Osman Yuksel
 
ODP
Javascript Performance Optimisation
irfandurmus
 
DOCX
Fonksiyonlar
sekizagustos
 
DOCX
C dilindeki strtok, remove, rename ve system fonksiyonları.
MehmetKelepce
 
Sunu algo05
Eyüp Oral
 
Feature selection - metin madenciliği özellik seçimi
Şahabettin Akca
 
Php ekşin - Temel php i̇şlemleri
Anka Bilişim Teknolojileri
 
Sqlmap Analiz
B3mB4m Turk
 
Ileri seviye javascript by Azer Koculu
mustafa sarac
 
Php 3. hafta
farukozturk061
 
JavaScript sunumu
Osman Yuksel
 
Javascript Performance Optimisation
irfandurmus
 
Fonksiyonlar
sekizagustos
 
C dilindeki strtok, remove, rename ve system fonksiyonları.
MehmetKelepce
 
Ad

More from cmkandemir (10)

PDF
Temel HTML Etiketleri ve Kullanım Örnekleri
cmkandemir
 
PDF
Yapay Zeka Nedir?
cmkandemir
 
PDF
Zekayı Anlamak
cmkandemir
 
PDF
PHP - Kullanıcı Girişlerinin İşlenmesi
cmkandemir
 
PDF
Chapter 2-8085 Microprocessor Architecture and Microcomputer Systems
cmkandemir
 
PDF
Chapter 1-Microprocessors, Microcomputers, and Assembly Language
cmkandemir
 
PDF
CSS - Genel Bakış
cmkandemir
 
PDF
Temel HTML Etiketleri - Tablo, Form
cmkandemir
 
PDF
Temel HTML Etiketleri - Text, Image, Link, List, Image
cmkandemir
 
PDF
Vaadin JPAContainer
cmkandemir
 
Temel HTML Etiketleri ve Kullanım Örnekleri
cmkandemir
 
Yapay Zeka Nedir?
cmkandemir
 
Zekayı Anlamak
cmkandemir
 
PHP - Kullanıcı Girişlerinin İşlenmesi
cmkandemir
 
Chapter 2-8085 Microprocessor Architecture and Microcomputer Systems
cmkandemir
 
Chapter 1-Microprocessors, Microcomputers, and Assembly Language
cmkandemir
 
CSS - Genel Bakış
cmkandemir
 
Temel HTML Etiketleri - Tablo, Form
cmkandemir
 
Temel HTML Etiketleri - Text, Image, Link, List, Image
cmkandemir
 
Vaadin JPAContainer
cmkandemir
 

Kod Akış Kontrolü - Döngüler, Fonksiyonlar

  • 1. Kod Akış Kontrol Yrd.Doç.Dr. Celal Murat KANDEMİR ESOGÜ – Eğitim Fakültesi - BÖTE twitter.com/cmkandemir
  • 2. Contents 1. Koşul cümleleri (Conditional statements) 2. Döngüler (Loops) 3. Fonksiyonlar ve Geri Dönüş Değerleri 4. Include ve require 5. Değişken kapsam alanı
  • 4. Koşul İfadeleri - if if yapısı eğer belli bir koşul sağlanırsa kodun çalıştırılmasını sağlar Not: atamalar atanmış bir değer olarak geri döner $a = 5; $b = 7; if ($a > $b) echo "A büyüktür B"; if ($a % 2) { echo "A is odd"; $b = $a % 2; echo "A%2 is :".$b; } if ($b = $a%2) echo "A tek - A%2 is :".$b;
  • 5. Koşul İfadeleri - if if yapısı eğer belli bir koşul sağlanırsa kodun çalıştırılmasını sağlar Not: atamalar atanmış bir değer olarak geri döner $a = 5; $b = 7; if ($a > $b) echo "A büyüktür B"; if ($a % 2) { echo "A is odd"; $b = $a % 2; echo "A%2 is :".$b; } if ($b = $a%2) echo "A tek - A%2 is :".$b; Boolean ifade
  • 6. Koşul İfadeleri - if if yapısı eğer belli bir koşul sağlanırsa kodun çalıştırılmasını sağlar Not: atamalar atanmış bir değer olarak geri döner $a = 5; $b = 7; if ($a > $b) echo "A büyüktür B"; if ($a % 2) { echo "A is odd"; $b = $a % 2; echo "A%2 is :".$b; } if ($b = $a%2) echo "A tek - A%2 is :".$b; Eğer koşul doğru ise çalıştırılacak kod bloğu Parantezleri unutmayın!
  • 7. If - else if-else yapı if yapının genişletilmiş şeklidir ve şartla sağlanırsa bir kodu sağlanmaz ise diğerini çalıştırmanıza imkan sağlar. $a = 5; $b = 7; if ($a > $b) echo "A büyüktür B"; else echo "B büyük eşit A";
  • 8. if - elseif if-else yapının genişletilmiş biçimidir else gövdeye yeni koşullar eklemek için kullanılır Çoklu elseif ifadeleriniz olabilir. if ($a > $b) echo "A büyüktür B"; elseif ($a == $b) echo "A eşittir B"; else echo "B büyüktür A";
  • 9. switch switch yapı kontrol edilen değişken değerine bağlı olarak farklı kod bölümlerinin çalıştırılmasını sağlar. Çok sayıda if kullanmakla aynıdır. switch gövdesi "case" cümleleri içerir Yorumlayıcı değişken değeri ile eşleşen kod cümlesini bulur ve çalıştırır switch ($a) { case 0: echo "A 0’dır"; break; case 1: echo "A 1’dir"; break; }
  • 10. switch (2) else benzer şekilde default case işleminiz olabilir Eğer youmlayıcı herhangi bir case değerini bulmazsa default seçeneği yürütür default case zorunlu değildir switch ($a) { case 0: echo "A is 0"; break; case 1: echo "A is 1"; break; default: echo "A is … something else"; break; }
  • 11. switch(3) Yorumlayıcı bulduğu case durumu için gerekli kod cümlelerini çalıştırdıktan sonra bir sonraki case satırına gider switch bloğundan çıkmaz. Yukarıdaki örnek "A 0’dır A 1’dir" ekran çıktısı verir. Çözüm gerekli olan yerlere break eklenmesidir default case için de aynı durum söz konusudur (eğer son durum değilse!) $a = 0; switch ($a) { case 0: echo "A 0’dır"; case 1: echo "A 1’dir"; }
  • 12. switch(4) switch davranışına bağlı olarak boş case durumları da kullanılabilir break konulmaz, böylelikle yorumlayıcı bir sonraki satırdan devam edebilir. Tek bir kod ile birden fazla değeri birleştirmek amacıyla kullanılabilir. $a = 0; switch ($a) { case 0: echo "A 0’dır"; break; case 1: case 2: echo "A 1 veya 2’dir"; break; }
  • 13. switch(5) Herhangi bir skaler tip değişken kullanılabilir (string, number, boolean, etc) switch ($name) { case "Dimitar": echo 1; break; case "Svetlin": case "Nakov" : echo 2; break; case false : echo "İsimsiz"; break; default : echo "?!"; break; }
  • 14. Üçlü Operatör (Ternary Operator) if-else yapının kısa şeklidir Koşula bağlı olarak sadece tek bir değer geri döndürmek amacıyla kullanılabilir. Söz dizimi: Aşağıdaki şekilde kullanılamaz: echo ($a<$b ? "a küçük" : "b küçük"); echo ($a>$b ? "a" : "b")." büyüktür"; $b = ($a % 2 ? 17 : 18); <condition>?<value if true>:<value if false> ($a > 17 ? echo "a" : echo "b" );
  • 16. whileYapısı PHP, C stili while döngüsünü destekler Koşul sağlanana kadar gövdede bulunan kod parçası çalıştırılır Gövde bir veya fazla kod satırından oluşabilir Eğer birden fazla kod satırı var ise eliptik parantez içine alınmalıdır Koşul ifadesi boolean değişken tipinde olmalıdır. $a = 1; while ($a < 100) { $a ++; echo $a; } ifade gövde
  • 17. do… whileYapı do-while yapı while-do yapıya benzer Koşul ifade çalıştırıldıktan sonra kontrol edilir! Gövdede bulunan kod en az bir kez çalışır! $a = 1; do { $a ++; echo $a; } while ($a < 100); // this will produce 2 3 4 … 100 // the while cycle would output 2 3 4 … 99 ifade gövde
  • 18. for Döngüsü PHP, C stili döngüyü destekler for döngüsü başlatma, tekrarlanma ve sonlanma koşul ifadelerinden oluşur Hiçbiri zorunlu değil Her ifade virgülle ayrılmış ifadelerden oluşur for ($i = 0; $i < 10; $i++) echo $i; for ($i = 0, $j = 10; ; $i++, $j--) if ($j > $i) echo $i; else break;
  • 19. for Döngüsü PHP, C stili döngüyü destekler for döngüsü başlatma, tekrarlanma ve sonlanma koşul ifadelerinden oluşur Hiçbiri zorunlu değil Her ifade virgülle ayrılmış ifadelerden oluşur for ($i = 0; $i < 10; $i++) echo $i; for ($i = 0, $j = 10; ; $i++, $j--) if ($j > $i) echo $i; else break; başlangıç
  • 20. for Döngüsü PHP, C stili döngüyü destekler for döngüsü başlatma, tekrarlanma ve sonlanma koşul ifadelerinden oluşur Hiçbiri zorunlu değil Her ifade virgülle ayrılmış ifadelerden oluşur for ($i = 0; $i < 10; $i++) echo $i; for ($i = 0, $j = 10; ; $i++, $j--) if ($j > $i) echo $i; else break; son koşulu
  • 21. for Döngüsü PHP, C stili döngüyü destekler for döngüsü başlatma, tekrarlanma ve sonlanma koşul ifadelerinden oluşur Hiçbiri zorunlu değil Her ifade virgülle ayrılmış ifadelerden oluşur for ($i = 0; $i < 10; $i++) echo $i; for ($i = 0, $j = 10; ; $i++, $j--) if ($j > $i) echo $i; else break; tekrarlanma
  • 22. for Döngüsü PHP, C stili döngüyü destekler for döngüsü başlatma, tekrarlanma ve sonlanma koşul ifadelerinden oluşur Hiçbiri zorunlu değil Her ifade virgülle ayrılmış ifadelerden oluşur for ($i = 0; $i < 10; $i++) echo $i; for ($i = 0, $j = 10; ; $i++, $j--) if ($j > $i) echo $i; else break; gövde
  • 23. foreach Foreach diziler üzerinde tekrarlı işlemleri gerçekleştirmek amacıyla kullanılır. Dizideki her eleman için gövdede bulunan kod çalıştırılır. $value değişkenine dizide o an üzerinde çalışılan eleman değeri atanacaktır. $arr = array (1,1,2,3,5,8); foreach ($arr as $value) echo $value;
  • 24. foreach ve İlişkisel Diziler Foreach ikinci kullanım şekli Dizideki değere karşılık gelen anahtara erişilmesini sağlar. $arr = array ("one" => 1, "two" => 2); foreach ($arr as $key => $value) echo $key." => ".$value;
  • 25. break ve continue Döngüden break komutu ile çıkılabilir Bir sonraki döngüye geçmek için ise continue komutu kullanılır $i = 0; while (true) { $i ++; if ($i == 10) break; // döngüden çık if ($i%2 == 0) continue; // sonraki tekrar echo $i; } // ekran çıktısı 1 3 5 7 9
  • 27. Fonksiyonlar Fonksiyonlar, tekil bir isim altında bir araya getirilmiş koda satırı kümeleridir. function kelimesi ile bildirim yapılır Parametre alabilir ve değer dönebilir Kodun organize edilmesine ve tekrar kullanılabilmesine olanak sağlar Echo, print ve diğerleri dahili fonksiyonlardır function sum ($a, $b) { return $a + $b; } echo sum(5,7); // 12 ekran çıktısı üretir
  • 28. Fonksiyonlar(2) Fonksiyon ismi tekil (benzersiz) olmalı Sınırsız sayıda argüman alabilir Fonksiyon isminden sonra parantez için tanımlanır return ifadesi ile değer geri döndürebilir Tek parametre kabul der, geri dönüş değeri
  • 29. Fonksiyon Parametreleri Fonksiyon parametreleri için ön tanımlı değerlere sahip olabilir Kullanılışını kolaylaştırır Varsayılan değer ,sabit ifade olmalıdır Fonkisyon bildiriminde varsayılan olarak ayarlanmış argümanlar, sağ taraftadır! function max ($a, $b, $strict = true) { if (strict) return ($a > $b); else return ($a >= $b); } echo max(3,3,false); echo max(4,3,true); echo max(3,3); // we can omit 3rd parameter
  • 30. Fonksiyon Parametreleri(2) Varsayılan olarak PHP argümanları fonksiyonlara değer olarak geçirir. Anlamı fonksiyondaki argüman değeri değişimi, fonksiyon sonlandıktan sonra etkilemeyecektir. Argümana & ön takısı eklenerek argümanların referans ile geçirilmesi sağlanır function double (&$a) { $a *= 2; } $b = 7; double ($b); echo $b; // 14 geri döner;
  • 31. Fonksiyon Parametreleri (3) PHP supports variable-length function parameters Fonksiyona herhangi sayıda argüman geçirilebilir. Fonksiyon parametreleri func_num_args() ve func_get_arg() ile okunabilir function sum(){ $res = 0; for ($i=0, $n = func_num_args(); $i < $n; $i++) $res += func_get_arg ($i); return $res; } echo sum (4,5,6);
  • 32. Fonksiyon Geri Dönüş Değeri Fonksiyonlar return kelimesiyle değer geri döndürebilirler. Tek argüman alırlar-geri dönecek değer Fonkisyondan çıkar Çok değer geri dönülecekse diziler kullanılmalıdır Fonksiyon değer geri döndürmek zorunda değildir function foo ($a) { return true; // aşağıdaki kod çalıştırılmaz echo $a + 1; }
  • 33. Fonksiyon Geri Dönüş Değeri(2) Çok değer geri dönmek için sabit uzunluklu diziler ve list kullanılır list ifadesi değişkenlere çoklu dizi elemanları atar array gibi bir fonksiyon değildir Sadece sayısal diziler için çalışır ve indisi sıfıdan başlar function small_numbers () { return array (0,1,2); } list ($a, $b, $c) = small_numbers();
  • 34. Değişken Fonksiyonları PHP değişken fonksiyonları destekler Eğer değişken ismine parantez eklenirse, derleyici fonksiyonu bulmaya çalışır. echo, print vb. bazı dahili fonksiyonlarda çalışmaz function foo () { echo "Bu bir foo"; } $a = 'foo'; $a(); // foo fonksiyonu çağrılır
  • 35. Fonksiyonlar İle İlgili Bazı Notlar Fonksiyonun varlığı kontrol edilebilir function_exists($name) Cross-platform scriptler yaratmak için kullanışlıdır İç içe fonksiyonlar tanımlanabilir Dış fonksiyon çağrılmadıkça kullanılamazlar Fonksiyonlar şarta bağlı tanımlanabilir Koşula bağlı olarak fonksiyon tanımlanır veya tanımlanmaz
  • 37. Include ve Require include ve require ifadeleri bir dosya eklemek ve değerlendirir Kodu bölmek, birleştirmek ve tekrar kullanmak için uygundur Her ikisi de tek parametre alır – dosya adı Eğer dosya bulunamazsa include warning üretirken , require fatal error üretir. Dosya herhangi bir uzantıda olabilir require "header.php"; echo "body burada yazılır"; require "footer.php";
  • 38. include_once ve require_once include_once ve require_once, include ve require ifadelerinin farklı formudur. include ve require ile bir dosya bir çok kez include edilir include_once ve require_once eğer dosya zaten include edildiyse, hiçbir şey olmaz Örneğin, bir dosya içinde fonksiyonu tanımladıysanız, çift include "Aynı İsimle Fonksiyon hali hazırda vardır hatası üretir.
  • 40. Değişken Etki Alanı Fonksiyon içinde bildirimi yapılmış değişkenler fonksiyondan çıkana dek vardırlar include/require ile eklenen dosyalardeğişken etki alanını miras alırr $_GET, $_POST, $_SERVER ve diğer tümleşik (built-in) değişkenler globaldir. Kod içinde herhangi bir yerden erişilebilir. Fonksiyonun dışında tanımlanan değişkenler içinde erişilebilir değildir.
  • 41. Global Anahtar Kelimesi Fonksiyonun dışında tanımlanan değişkenler içinde erişilebilir değil. global olarak tanımlanmalı ya da global ifadesiyle birlikte kullanılmalıdır. $a = "test"; function $foo () { echo $a; // ekran çıktısı vermez } $a = "test"; function $foo () { global $a; echo $a; // "test« çıktısı üretir; }
  • 42. Döngüler ve Değişken Etki Alanı Döngü içinde tanımlı değişkenler, döngü sonrası erişilebilir değildir. Örnekte dizi döngüden önce tanımlanmalıdır for ($i = 0; $i < 5; $i++) { $arr[] = $i; } print_r ($arr); // çıktı oluşmaz $arr = array(); for ($i = 0; $i < 5; $i++) { $arr[] = $i; } print_r ($arr); // bu kez çalışır
  • 43. Parantezler Hakkında Notlar PHP kod HTML içine gömülebildiği gibi, HTML kod da PHP içene gömülebilir. echo "Hello John!"; yazmakla eşdeğerdir. uzun metinler için oldukça kullanışlıdır <?php if ($name == "John") { ?> Merhaba John! <?php } ?>
  • 48. Örnekler 1. 1’den 50’ye sayıları yazan program yazınız. 2. 1 ve 50 arasındaki 5 ve 7’ye bölünemeyen sayıları yazınız 3. Write a program that prints HTML table with N columns and N rows with the numbers 1, 2, 3, ... in its cells for a given N, defined as a constant 4. İndisli dizide minimal bileşeni bulan program kodunu yazınız
  • 49. Örnekler(2) 5.Tanımlanmış sabit N için N! (factorial 1*2*..*N) hesap eden programı yazınız 6.Tanımlanmış sabitler N ve K için N!*K!/(N-K)! İfadesini hesaplayan programı yazınız