web programlama php temelleri dr. erman...

24
WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürk

Upload: others

Post on 31-May-2020

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

WEB PROGRAMLAMA

PHP Temelleri

Dr. Erman Yükseltürk

Page 2: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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

Page 3: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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.

Page 4: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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" ;?>

Page 5: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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

Page 6: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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";

?>

Page 7: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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

Page 8: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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.

Page 9: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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.

Page 10: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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ı.

Page 11: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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)

Page 12: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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.

Page 13: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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 !!!

Page 14: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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

Page 15: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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;

Page 16: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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.

Page 17: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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 ???

Page 18: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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.

Page 19: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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

Page 20: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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

Page 21: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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);

Page 22: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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;

Page 23: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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*/

Page 24: WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürkuser.ceng.metu.edu.tr/~erman/web/30ocak2012/php01... · PHP Temelleri Dr. Erman Yükseltürk. Hatırlayalım • PHP nedir, nasıl

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?