WEB PROGRAMLAMA
PHP Temelleri
Dr. Erman Yükseltürk
Hatırlayalım
• PHP nedir, nasıl çalışır?
• Bilgisayarınızda php kurulumu nasıl yapılır?
• Web Editor (Dreamweaver CS5) ayarları.
• Örnek uygulamalar.
2
3
PHP kodlarını web sayfalarınıza gömmek</h3>Welcome</h3>
<?php
echo "<p> Bazı dinamik çıktılar</p>" ;
?>
<p>Bazı durağan çıktılar</p>
Kısa etiketler (tags)
<?
print "Bazı dinamik çıktılar" ;
?>
Bunun için php ini dosyasındaki short_open_tag = Off değerini on yapıp, sunucunuzu yeniden başlatmanız gerekiyor.
4
Komut YapılarıEcho ve print kullanmadan da ekrana metin yazdırabiliriz.
<?= " 1 PHP denemeleri" ;?>
<? echo " <br>2 echo PHP denemeleri" ;?>
<?php echo " <br>3 php echo PHP denemeleri" ;?>
<?php print " <br>4 php print PHP denemeleri" ;?>
<? print " <br>5 print PHP denemeleri" ;?>
5
Komut Yapıları<html><head><title>
<?php echo "Web sayfama hoş geldiniz!";?></title></head><body>
<?php$tarih = "Ocak 26, 2012";
?><p>Bugünün tarihi <?php echo $tarih;?></p>
</body></html>
Yorum<?php
// Başlık : ilk PHP scriptim
// Yazar : Erman
echo "Bu bir PHP programı";
?>
Değişkene değer atama
Bu değişkeni kullanma
6
Komut YapılarıYorum<?php# Başlık : ilk PHP scriptim# Yazar : Erman
echo "Bu bir PHP programı";?>
Bir satırdan fazla yorum olduğunda<?php
/*
Başlık : ilk PHP scriptim
Yazar : Erman
Tarih : 26 Ocak 2012
*/
print "a";
?>
7
Web Tarayısına Çıktı Göndermek
<?phpprint("<p>Yaz sezonunu çok severim.</p>");
?>
Aynı ifadenin bir başka biçimi<?php
$sezon = "Yaz";print "<p>$sezon sezonunu çok severim.</p>";
?>
Aynı ifadenin bir başka biçimi<?php
print("<p>Yaz sezonunu çok severim.</p>");
?>
Değişken’in değerini metin
içinde yazdırma
8
Web Tarayısına Çıktı Göndermek
echo
<?php
$EnIyiErkekOyuncu = "Morgan Freeman";
$EnIyiKadinOyuncu = "Hale Berry";
echo "En iyi kadın oyuncu ödülünü ",
$EnIyiKadinOyuncu, " ve
en iyi erkek oyuncu ödülünü ", $EnIyiErkekOyuncu, "
aldı.";
?>
print ve echo aynı amaçla kullanılıyorlar fakat
echo gerçekte birden fazla string’i yan yana
yazdırmak için kullanılıyor.
Bu içeriği print komutu ile
yazmayı deneyelim.
9
Web Tarayısına Çıktı Göndermek
Printf komutunu da kullanabiliriz.<?php
printf ("Bar araştırması: %s şişe whisky.", 100);?><?php
printf ("Bar araştırması: %d şişe whisky, fiyatı $%f", 100, 43.20);
?>sprintf<?php
$fiyat = sprintf("$%d", 43,20);print "$fiyat <br>";printf ("Urunun fiyatı = %d", 43.20);
?> sprintf bir değişkene değer atıyor.
10
Web Tarayıcısına Çıktı Göndermek
%b integer ve binary numara olarak yazılır,
%c integer ve karşılığı ASCII değeri yazılır,
%d integer ve decimal numara olarak yazılır,
%f noktalı sayılar ve noktalı sayı olarak yazılır,
%o integer ve karşılığı oktal sayı olarak yazılır,
%s string ve karşılığı string olarak yazılır, “string“
%u integer ve işaretsiz decimal sayı olarak yazılır,
%x integer ve küçük harflerle hexadecimal sayı,
%X integer ve büyük harflerle hexadecimal sayı.
11
Scalar (sayıl) Veri tipleri 1/2
Boolean
$deger= false;//$deger değeri yanlış
$deger= 1; //$deger değeri doğru.
$deger= -1; //$deger değeri doğru.
$deger= 5; //$deger değeri doğru.
$deger= 0; //$deger değeri yanlış.
Integer (tam sayılar)
10 tabanlı (decimal)
8 tabanlı (octal)
16 tabanlı (hexadecimal)
12
Scalar (sayıl) Veri tipleri 1/2Gerçek sayılar (real numbers)
Noktadan sonra kısımları olan sayılardır.4,56788,7e41,23E+11
String (metin)$color = "maroon";$karakter = $color[2]; // karakter’e rdeğerini atar
Dizinin 2. karakteri metnin 3’uncu karakteri oluyor.
13
Birleşik Veritipleri (Compound Datatypes)
Diziler $sehir[0] = “Adana";$sehir[1] = “Adıyaman";$sehir[2] = “Afyon";…$sehir[80] = “Düzce";
$sehir[Adana] = “1254325";$sehir[Adıyaman] = “56437";$sehir[Afyon] = “189008";
Nesneler (Objects)Tam olarak tanımlanmalıdırlar.Class Uygulama{
private $_power;function setPower($status){
$_power= $status * $status; echo $_power;}
}…$blender = new Uygulama;$blender->setPower(4);
Diziler ileriki konularda !!!
Objects ilerikikonularda !!!
14
Verileri dönüştürmek 1/3Operatör Dönüşüm
(array) Dizi
(bool) or (boolean) Boolean
(int) or (integer) Tam Sayı
(int64) 64-bit Tam sayı (PHP 6’da var)
(object) Nesne
(string) Metin
(real) or (double) or (float) Ondalıklı Sayı
$puan = (double) 13; // $puan = 13.0
$puan = (int) “13,8”; // $puan = 13.0
$cumle = (int) "Bu bir cümle";
print $cumle; //0 döndürür
$puan = 1114;
$puanTahtasi = (array) $puan;
echo $puanTahtasi[0]; // 1114 değerini döndürür
15
Verileri dönüştürmek 2/3Herhangi bir veri Object’e dönüştürebilir.
$model = "Toyota";
$obj = (object) $model;
//Object değerini ekrana yazdırmak için ->scalar kullanılır
print $obj->scalar; // "Toyota" değerini döndürür
Değişkenlerin tipi farklı olduğunda en muhtemel işlem uygulanır.
$total = 5; // integer
$count = "15"; // string
$total += $count; // $total = 20 (an integer)
$total = "45 ateş makinesi";
$yeniGelen = 10;
$total = $yeniGelen + $total; // $total = 55
echo $total;
16
Verileri dönüştürmek 3/3Muhtemel dönüştürme Boolean yapılarında da uygulanır
$total = "1.0"; // string
if ($total) echo "Pozitif bölgedeyiz!";
$val1 = "1.2e3"; // 1.200
$val2 = 2;
echo $val1 * $val2; // 2400 değerini döndürür
gettype(değişken)
$val1 = "1.2e3"; // 1,200
$val2 = gettype($val1);
echo $val2; // string değerini döndürür.
Settype(değişken, dönüştürülecek değişken türü)
$val1 = "1.2e3"; // 1,200
$val2 = settype($val1, "integer");
echo $val2; // 1 değerini döndürür.
17
Belirteç (identifier) Fonksiyonları
is_array(), is_bool(), is_float(), is_integer(), is_null(), is_numeric(),
is_object(), is_resource(), is_scalar(), and is_string().
$deger = 43;
printf("Değisken \$deger bir dizimidir?: %d", is_array($deger));
printf("<br>Değisken \$deger bir tam sayimidir?:
%d",is_integer($deger));
printf("<br>Değisken \$deger bir numeric sayimidir?: %d <br />",
is_numeric($deger));
\$deger ???
18
Belirteç (identifier) Fonksiyonları
Belirteçler (identifier) • Bir veya daha çok karakterden oluşabilir ve harf veya alt
çizgi ile başlar,
• Harfler, rakamlar, altçizgi karakterleri ve 127-255’e ASCII
karakterleri kullanılabilir,
• Büyük küçük harfe duyarlıdır,
• İstenilen uzunlukta olabilir,
• PHP komutlarından herhangi biri belirteç olarak
tanımlanamaz.
19
Değişkenler (Variables)
Değişken farklı zamanlarda farklı değerler alabilen
simgelerdir.
Değişkenler $ işareti ile başlar ve belirteçlerle aynı
isimlendirme kurallarına uyarlar.
$color
$isletim_sistemi
$ModelName
20
Değişkenler (Variables)
Değer atama
$color=“red”;
$numara=12;
$toplam=12 + "15" //$toplam =27 olur
Referans Atama
$deger1="Merhaba";
$deger2=& $deger1; //$deger1 ve $deger2 nin değeri
Merhaba oldu
$deger2="Bay bay"; //$deger1 ve $deger2 nin değeri
Bay bay oldu
21
Değişken Kapsamları 1/4
Yerel Değişkenler
Herhangi bir fonksiyonda tanımlanan değişkenlerdir.
Bu fonksiyonun dışındaki değer atamalar tamamen
farklı bir değişkenmiş gibi işlem görür.
Fonksiyonu çıktığınız anda değişkeniniz ve atadığınız
değeriniz sıfırlanır.$x = 4;
function assignx () {
$x = 0;
printf("\$x fonksiyonun içinde değeri
%d <br />", $x);
}
assignx();
printf("\$x fonksiyonun dışında değeri %d <br />", $x);
22
Değişken Kapsamları 2/4
Fonksiyon parametreleri
Diğer programlarda da olduğu gibi parametre kabul
eden fonksiyonlar fonksiyon başlığında bunları
açıklamalıdırlar.
Fonksiyon parametreleri fonksiyon isminden sonra
parantez içinde gösterilirler.
// girilen değerin 10 katını geri döndürür
function x10 ($deger) {
$deger = $deger * 10;
return $deger;
}
$islem= x10(25);
print $islem;
23
Değişken Kapsamları 3/4
Evrensel (global) Değişkenler
Evrensel değişkenler programın herhangi bir yerinden
ulaşılabilirler.
Bir global değişken değiştirilecek fonksiyonda açıkça
belirtilmelidir.
Bunun için değişkenin önüne GLOBAL yazmak yeterlidir.
Global değişkenler kullanmak, öngörülmeyen problemlere yol
açabilir, bu yüzden dikkatli olmak gerekir
$bir_degisken = 15;
function addit() {
GLOBAL $bir_degisken;
$bir_degisken++;
echo "bir degisken = $bir_degisken";
}
addit(); /*sonuç olarak 16 üretir. GLOBAL yazılmasaydı 1
üretirdi*/
24
Değişken Kapsamları 4/4
Sabit (static) Değişkenler
Sabit bir değişken fonksiyon kapatılsa bile değerini kaybetmez,
fonksiyon tekrar çağrıldığında değerini korur.
Bunun için değişkenin önüne STATIC yazmak yeterlidir.
function iz_sur() {
STATIC $sayi = 0;
$sayi++;
echo $sayi;
echo "<br />";
}
iz_sur();
iz_sur();
iz_sur();
STATIC kelimesini kaldırsaydık ne olurdu?
Top Related