PHP Nedir? PHP de Temel Sözdizimi (Syntax)



Benzer belgeler
PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

İnternet Programcılığı Dersi 2.Dönem Ders Notu


Internet Programming II

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECİOĞLU 1

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

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

HSancak Nesne Tabanlı Programlama I Ders Notları

Internet Programming II

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

C Konsol Giriş Çıkış Fonksiyonları

İNTERNET PROGRAMCILIĞI - II

İNTERNET PROGRAMCILIĞI DERSİ ÇALIŞMA SORULARI

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

PASCAL PROGRAMLAMA DİLİ YAPISI

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

C Programlama Dilininin Basit Yapıları

Internet Programming II

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

PROGRAMLAMAYA GİRİŞ DERS 2

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

HSancak Nesne Tabanlı Programlama I Ders Notları

Öğr. Gör. Serkan AKSU 1

Sunum İçeriği. Programlamaya Giriş

Diziler İndisli Değişkenler

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Değişkenler ve Veri tipleri. Ders Notları

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

JAVASCRIPT JAVASCRIPT DİLİ

Nesne Tabanlı Programlama

BÖLÜM 3 OPERAT A ÖRLER

PHP ile Programlama (I/III)

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

Integer Sınıfı. 9.1 Integer Sınıfına Uygulanan Başlıca Metotlar. Ruby de tamsayılar için kullanılan Fixnum ve Bignum sınıflarını üreten sınıftır.

Nesne Tabanlı Programlama

C#(Sharp) Programlama Dili

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

Nesne Yönelimli Programlama

YZM 2105 Nesneye Yönelik Programlama

Programlama Dillerinde Kullanılan Veri Tipleri

Bölüm 10: PHP ile Veritabanı Uygulamaları

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

/*int sayi1, sayi2,toplam=0;

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

2.2- DEĞİŞKENLER VE SABİTLER ÇALIŞMA YAPRAĞI

Genel Programlama II

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

Hafta 13 Fonksiyonlar

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

İsimler ve Kapsam. 24 Şubat Programlama Dilleri - Pamukkale Üniversitesi 1

Program Çözümleme. Aşağıdaki örneklerde printf() ve scanf() fonksiyonlarının işlevleri gösterilmektedir. Liste 1.1. Çözümleme:

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

2. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Eln 1001 Bilgisayar Programlama I

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

Php 5 ile Filtreleme İşlemleri

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Regular Expressions Version 0.1

İNTERNET PROGRAMCILIĞI - II

Operatörler. İnternet Programcılığı 2. Operatörler

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

DİZİLER 5/4/2010. ENF-102 Jeoloji Giriş. Tek Boyutlu Diziler. Tek Boyutlu Diziler. Örnek. Örnek

C PROGRAMLAMA DİLİNE GİRİŞ

Klavyeden Basit Giriş/Çıkış İşlemleri

WEB PROGRAMLAMA. PHP Temelleri 2. Dr. Erman Yukselturk

Giriş. ENF102 Jeoloji

Veri Tipleri Aşağıdaki programdaki 5 hatayı bulunuz.

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

C PROGRAMLAMA D İ L İ

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Burada a değişkeninin türü integer olarak verildi. Peki biz bu ifadeyi tırnak içerisinde yazarsak ne olur?

Algoritma ve Programlama: Karar Yapıları ve Döngüler

BİLGİSAYAR UYGULAMALARI Şırnak Üniversitesi Mühendislik Fakültesi Güz Dönemi Arş.Gör. Eren DEMİR ve Arş.Gör. Veysel KIŞ (

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

MATLAB/Değişkene Değer Atamak

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

Hafta 12 Karakter Tutan Diziler

Temel Giriş/Çıkış Fonksiyonları

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

ALGORİTMA VE PROGRAMLAMA I

C Programlama printf() Fonksiyonu

HSancak Nesne Tabanlı Programlama I Ders Notları

ELN1001 BİLGİSAYAR PROGRAMLAMA I

NESNEYE YÖNELİK PROGRAMLAMA

Fonksiyonlar (Altprogram)

Transkript:

PHP Bu dersimizde, kişisel web sunucumuza PHP ye giriş yapacağız. Öncelikle PHP'nin sözdizimi (syntax) ile ilgili bilgiler öğrenecek, ardından da PHP'de kullanılan veri tiplerini, değişkenleri ve sabitleri inceleyerek dersimizi tamamlayacağız. PHP Nedir? PHP HTML içine gömülebilir, sunucu taraflı, açık kod lisansıyla dağıtılan bir programlama dilidir. PHP, ASP ile aynı kulvarda koşar ve benzer çalışma mantığına sahiptir. PHP Nedir? Bir örnek: <html> <head> <title>örnek</title> </head> <body> echo "Merhaba, ben bir PHP programıyım!"; </body> </html> PHP Nedir? İnternet Programcılığı 1 İnternet Programcılığı 2 İnternet Programcılığı 3 PHP'ye Giriş Bir PHP programı (scripti) Perl ve C dillerine çok benzer. HTML kodu yaratmak için bir sürü kod yazacağınıza, istediğiniz işi yapan bir gömülü koda sahip HTML yazabilirsiniz (bu örnekte, yapılan iş ekrana yazı yazmak). PHP kodu özel başlangıç ve bitiş etiketleri arasına yazılır. Bu etiketler "PHP moduna" girip çıkabilmenizi sağlarlar. (Syntax) HTML'den Kaçış PHP bir dosyayı okurken, kendisine taranan metnin PHP kodu olduğunu söyleyen özel etiketlerden birine rastlayıncaya kadar dosyadaki metni işlemeden geçirmekle yetinir (HTML olarak kabul eder). Bu etiketler arasındaki kod ise, bir sonlandırma etiketiyle karşılaşılıncaya kadar çalıştırılır ve sonlandırma etiketiyle birlikte tekrar işlemeden geçirme işlemine devam edilir. Bu mekanizma, PHP'yi HTML kodunun içine gömme imkanı sağlar. PHP etiketlerinin dışındaki herşey olduğu gibi bırakılır, içerdeki herşey kod kabul edilerek taranır. PHP kod bloğunu belirtmek için ise farklı etiket biçimi vardır. Bunlardan yalnızca iki tanesi (... ve <script language="php">... </script>) her zaman mevcuttur; diğerleri php.ini konfigürasyon dosyası (php.ini) içersinden açılabilir yada kapatılabilir. Bu dört etiket biçiminden istediğinizi kullanma özgürlüğüne sahipsiniz, ancak en çok kullanılan biçimi şeklinde olanıdır. İnternet Programcılığı 4 İnternet Programcılığı 5 İnternet Programcılığı 6 PHP tarafından desteklenen etiketler şöyle sıralanabilir: 1. <? echo ("bu en basit kullanımdır\n"); <?= degisken pratik kullanımı ise şunun kısaltılmışıdır: "<? echo degisken " Bu yöntem bazı php sürümlerinde desteklenmemektedir. 2. echo("xhtml veya XML dokümanları sunuyorsanız, bu şekilde yapın\n"); 3. <script language="php"> echo ("bazı editörler bu kullanımı sevmezler"); </script> İnternet Programcılığı 7 4. <% echo ("İsterseniz ASP-tipi etiketler kullanabilirsiniz, fazla önerilmez"); %> <%= $variable; %> ise "<% echo..." %> için kısaltılmış kullanımdır. Bu yöntem de bazı php sürümlerinde desteklenmemektedir. Bunlar basitçe HTML'den kaçış yöntemleri (HTML ile PHP arasında geçiş) olarak değerlendirilirler. İnternet Programcılığı 8 Komut Ayrımı Komutlar birbirlerinden C ya da Perl dillerinde olduğu gibi ayrılırlar, bütün komutlar noktalı virgül ile sonlandırılır. Sonlandırma etiketi () aynı zamanda komutun sona erdiğini belirtir, bu nedenle aşağıdaki iki kullanım birbirine denktir: echo "Bu bir denemedir"; echo "Bu bir denemedir" İnternet Programcılığı 9 1

Açıklama (Remark) Kullanımı PHP, "C", "C++" ve Unix kabuk (shell) tipi yorum (comment, remark) kullanımını destekler. Örneğin: echo "Bu bir denemedir"; // Bu tek satırlık c++ tipi yorumdur /* Bu çoklu satır c++ tipi yorumudur ve bir başka satır daha */ echo "Bu diğer bir testtir"; echo "Son bitiş testi"; # Bu shell tipi yorumdur İnternet Programcılığı 10 PHP'de yedi adet veri tipini bulunmaktadır: Dört ölçeklenebilir tip: Boolean (Doğru/Yanlış) Integer (Tamsayı) Float (Kesirli sayı, double olarak da bilinir) String (Karakter katarı) İki bileşik tip: Array (Dizi) Object (Nesne) Ve son olarak iki özel tip: Resource (Kaynak) NULL (Boş) İnternet Programcılığı 11 BOOLEAN En basit değişken tipidir. Bir boolean, doğruluk değerini ifade eder. Sadece TRUE (doğru) yada FALSE (yanlış) değerini alabilir. $degisken = True; // $degisken 'e TRUE değerini atadık. Daha çok kontrol yapılarında ve operatörlerle birlikte kullanılır. Bir sonucun doğru olup olmadığını yada bir değişkenin içerisinde bilgi olup olmadığını bu şekilde kontrol edebiliriz. İnternet Programcılığı 12 Boolean şu tip ve değerlerde FALSE sonucunu üretir: Boolean değişkenin değeri False ise Integer değişkenin değeri 0 ise Float değişkenin değeri 0.0 ise String değişkenin içeriği boş ("") yada değeri "0" ise Array değişkenin hiç elemanı yoksa Object değişkenin üye değişkenleri yoksa Değişkenin değeri NULL ise Değişken tiplerinin belirtilen durumları haricindeki tüm değerleri TRUE sonucunu verir. İnternet Programcılığı 13 INTEGER Integer, Z =..., -2, -1, 0, 1, 2,... tamsayılar kümesindeki bir sayıyı ifade eder. Integer değişkenler decimal (10-tabanlı), hexadecimal (16-tabanlı) yada octal (8-tabanlı) olarak tanımlanabilir ve seçime bağlı olarak + yada - değer alabilirler. Eğer sekizlik gösterimi kullanmak istiyorsanız rakamın başına 0, onaltılık gösterimi kullanmak istiyorsanız 0x yazmanız gerekir. İnternet Programcılığı 14 $a = 1234; # pozitif tamsayı $a = -123; # negatif sayı $a = 0123; # sekizlik sayı (ondalık sayı karşılığı: 83) $a = 0x1A; # onaltılık sayı (ondalık sayı karşılığı: 26) Integer bir değişkende tutabileceğimiz maksimum değer 2147483647'dir. Bu değerin aşılması durumunda değişken otomatik olarak integer'dan daha büyük sayıları barındırabilen float tipine dönüşür. İnternet Programcılığı 15 FLOAT Floating Point Number (Kayan Noktalı Sayı), double (çift), ya da real number (gerçek sayı) olarak da bilinen float veri tipi, virgüllü sayıları ve integer'ın alamayacağı büyüklükteki sayıları barındırmak için kullanılır. Float değişkenler hafızada 64 bitlik yer kaplarlar. $a = 1.234; // 1.234 $b = 1.2e3; // 1.2 x (10^3) = 1200 $c = 7E-4; // 7 x (10^-4) = 0.0007 STRING String, karakterlerden oluşan bir dizidir. Karakter katarı ya da dizisi (array'dan farklı) olarak Türkçeleştirilebilir. Pratikte stringler için karakter sınırı yoktur, bu yüzden de çok uzun olabilirler. Bir string bilgisi 3 farklı şekilde belirlenebilir: Tek tırnaklı (single quoted) Çift tırnaklı (double quoted) Heredoc sözdizimli (heredoc syntax) a. Tek Tırnaklı Basit stringleri tanımlamak için kullanılan en basit yoldur. String tek tırnak işaretleri (') arasına yazılır. Tek tırnakla string tanımlanmasının getireceği farklılık şudur: Özel karakterler (\n, \\, klavyeden girilen enter karakteri, vb.) ve değişken isimleri dönüştürülmez, yani taşıdıkları anlam yada değer değil, yazılışları dikkate alınır ve çıktıda ekrana aynen yazılır (\' bunun dışındadır). İnternet Programcılığı 16 İnternet Programcılığı 17 İnternet Programcılığı 18 2

echo "<pre>"; echo 'bu, basit bir string'; echo 'bu string içerisine gömülü olarak yeni satırları basit bir şekilde oluşturabilirsiniz'; echo 'İngilizce öğreniyoruz: "I\'ll be back"'; // Çıktı: İngilizce öğreniyoruz: "I'll be back" echo 'Silinsin mi C:\\*.*?'; // Çıktı: Silinsin mi C:\*.*? echo 'Silinsin mi C:\*.*?'; // Çıktı: Silinsin mi C:\*.*? echo 'Yeni satıra geçer: \n yeni bir satır'; // Çıktı: Yeni satıra geçer: \n yeni bir satır echo 'Mevcut değerler $degisken1 $degisken2'; // Çıktı: Mevcut değerler $degisken1 $degisken2 echo "</pre>"; İnternet Programcılığı 19 b. Çift Tırnaklı Eğer string çift tırnaklar arasına yazılmışsa, PHP string içerisinde kaçış karakterleri (escape characters) kullanılabileceğini anlar. En çok kullanılan kaçış karakterleri aşağıda verilmiştir: \n Yeni satır \r Satırbaşı karakteri \t Tab karakteri \\ Ters bölü işareti \$ Dolar işareti \" Çift tırnak İnternet Programcılığı 20 $degisken1="deg1"; $degisken2="deg2"; echo "<pre>"; echo "bu, basit bir string"; echo "İngilizce öğreniyoruz: \"I'll be back\""; // Çıktı: İngilizce öğreniyoruz: "I'll be back" echo "Klasörümüzün yolu: C:\resim\tuval"; // hatalı görünür echo "Klasörümüzün yolu: C:\\resim\\tuval"; // doğru görünür echo "Yeni satıra geçer: \n yeni bir satır"; // iki satırda görünür echo "Mevcut değerler $degisken1 $degisken2"; // Çıktı: Mevcut değerler deg1 deg2 echo "</pre>"; İnternet Programcılığı 21 c. Heredoc Sözdizimli Pek kullanımı olmayan başka bir yol da heredoc ("<<<") adı verilen sözdizimi ile karakterleri sınırlandırmaktır. Bu metod kullanılırken öncelikle <<< tanımlayıcısından sonra herhangi bir string tanımlanmalı ve alıntı aynı tanımlayıcı ile kapanmalıdır. Kapanış tanımlayıcısı mutlaka satırın ilk sütununda tanımlanmalıdır. echo "<pre>"; $ders = 'İnternet Programcılığı'; echo <<<TANIM Şu an "$ders" dersini işlemekteyiz. Burada büyük 'a' harfi olmalı: \x41 TANIM; echo "</pre>"; String'lerde Basit Sözdizimi PHP yorumlayıcısı dolar ($) işareti gördüğünde sonrasının bir değişken adı olduğunu düşünür. Eğer değişken adının açıkça belirtilmesi gerekiyorsa işaretleri arasına yazılmalıdır. String'deki Karakterlere Erişme String'lerin içerdiği karakterlere yine karakterleri aracılığıyla ulaşılabilir. String'in ilk hanesi 0'dan başlayarak string uzunluğu 1'e kadar gider. İnternet Programcılığı 22 İnternet Programcılığı 23 İnternet Programcılığı 24 String'leri Sayılara Dönüştürme İki string'i birleştirmek için nokta (.) karakteri kullanılır. $isim = $ad." ".$soyad; String'ler üzerinde yapılabilecek işlemler tabii ki bunlarla kısıtlı değildir. PHP'nin çok geniş bir hazır string fonksiyonları kütüphanesi bulunmaktadır. Hazır string fonksiyonlarını ileriki konularda ayrıntılı olarak işleyeceğiz. ARRAY PHP'de array (dizi)'ları birçok değişkeni içerisinde barındıran düzenli bir harita yapısı şeklinde düşünebilirsiniz. Bu harita yapısı anahtar ve değerlerden oluşur. Array'ları matris yapısı şeklinde düşünebilirsiniz. PHP'de diziler tek boyutlu olabildiği gibi iki, üç ve daha fazla boyuta da sahip olabilirler. Yapı basitçe şu şekildedir: $dizi_adi[anahtar]=değer; /* dizinin belirli bir anahtarına değer atama */ $degisken=$dizi_adi[anahtar]; /* dizinin belirli bir anahtarından değer okuma */ Şimdi basit bir dizi tanımlayarak konuyu örnek üzerinde anlamaya çalışalım: $mevsimler = array("ilkbahar","kış","sonbahar","yaz"); echo $mevsimler[0]; // Çıktı: İlkbahar echo $mevsimler[2]; // Çıktı: Sonbahar İnternet Programcılığı 25 İnternet Programcılığı 26 İnternet Programcılığı 27 3

OBJECT Nesneler günümüzde neredeyse bütün programlama dillerinde varolan veri tipleridir. PHP'de bir nesne oluşturmak için, tanımlamış olduğumuz sınıf (class) öğesini "new" deyimi aracılığıyla nesne yapılacak değişkene aktarırız. Class içerisinde tanımladığımız değişkenler nesnenin özellikleri (attributes), fonksiyonlar ise nesnenin metodları olurlar. Örnek : class araba var $model; var $renk; function goster() echo "$this->renk bir Ford $this->model araba."; $ford = new araba; $ford->model="fiesta"; $ford->renk="kırmızı"; $ford->goster(); RESOURCE Kaynak veri tipi dediğimiz resource aslında bildiğimiz değişken kullanımından biraz farklıdır. Resource veri tipi, dosya açarken ya da veritabanına bağlanırken kullandığımız özel bir işleyici (handle) olarak karşımıza çıkarlar. $dosya = fopen ("c:\\ders\\bilgi.txt", "r"); /* $dosya değişkeni bir resource'dır */ $veri = mysql_connect("localhost", "kullanıcı", "şifre") /* bu da başka bir resource */ İnternet Programcılığı 28 İnternet Programcılığı 29 İnternet Programcılığı 30 NULL Null, çok özel bir veri tipidir. Boş, yok yada hiçbirşey anlamlarına gelmektedir. Bir değişken şu durumlarda Null olarak ifade edilebilir: İçerisine sabit tanım olan NULL atanmışsa ($deg=null) Henüz set edilmemişse ya da değer atanmamışsa (tanımlanmamış $deg) Unset edilmişse (unset($deg)) $a=null; if (is_null($a)) echo "a değişkenine herhangi bir değer atanmamış"; echo "<br>"; if (is_null($b)) echo "b değişkenine herhangi bir değer atanmamış"; Veri Tipi Okuma ve Kontrol PHP'de değişkenlerin tipi programcılar tarafından genellikle tanımlanmaz. Bunun yerine değişkenin tipi, PHP'nin çalışması sırasında içeriğe bağlı olarak kendiliğinden belirlenir. Eğer kesin bir ifadenin tipini ve değerini görmek istiyorsanız var_dump() fonksiyonunu kullanabilirsiniz. İnternet Programcılığı 31 İnternet Programcılığı 32 İnternet Programcılığı 33 Eğer hata ayıklama için değişken tipinin basitçe okunabilir gösterimini elde etmek istiyorsanız gettype() fonksiyonunu kullanabilirsiniz. Fakat amacınız değişkenin tipini almak değil de sadece kontrol etmek ise gettype() yerine is_type fonksiyonlarını kullanabilirsiniz. is_type fonksiyonları bütün veri tipleri için kullanılabilir. Örneğin; is_bool(), is_float(), is_int(), is_string(), is_object(), is_array(), is_null(). Geriye TRUE yada FALSE değeri döndürürler. Burada üzerinde bahsetmemiz gereken is_null fonksiyonu vardır. Bir değişkenin "null" olması, set edilmemiş (tanımlanmamış, hiç değer atanmamış) olması ile aynı manadadır. Veri Tipi Dönüşümü PHP'de değişkenlerin tipinin tanımlanmasına gerek olmadığını (hatta bunun desteklenmediğini), veri tipinin değişkenin içeriğine atılan değere göre otomatik belirleneceğini daha önce söylemiştik. Örneğin $deg değişkenine string atarsanız veri tipi string, tamsayı atarsanız integer, kesirli sayı atarsanız float olacaktır. PHP'nin otomatik tip dönüşümüne bir örnek de "+" operatörüdür. Eğer "+" ile birleştireceğiniz iki ifade de float ise sonuç da float olur. Fakat bu işlemde operatör ile işleme sokulan ifadelerin veri tipleri değişmez, sadece hesaplanan sonucun veri tipi ve değeri değişir. Eğer bir değişkenin tipini kesin olarak değiştirmek istiyorsanız settype() fonksiyonunu kullanabilirsiniz. settype() fonksiyonu ile herhangi bir değişkenin tipi, PHP'nin 7 veri tipinden birine dönüştürülebilir. Her ifadede olduğu gibi dönüşümün başarılı olması sonucu geriye TRUE değeri, başarısız olması durumunda ise FALSE değeri döner. Eğer amacınız bir değişkenin tipini kesin olarak değiştirmek değil de, o değişkenin başka veri tipine dönüştürülmüş halini elde etmekse, bu sefer parantezli PHP ifadelerini kullanabilirsiniz. Parantezli kullanımda, "+" operatöründe olduğu gibi, girdi ifadelerinin veri tipi değişmez, sadece çıktıyı etkilemiş oluruz. İnternet Programcılığı 34 İnternet Programcılığı 35 İnternet Programcılığı 36 4

PHP'de değişkenler, dolar işaretini ($) takip eden isimle temsil edilirler. Değişken isimleri büyük/küçük harf duyarlıdır (case-sensitive). Değişken isimleri, diğer PHP etiketleriyle aynı kuralları izlerler. Geçerli bir değişken adı harf veya alt çizgi karakteri (_) ile başlar, herhangi bir harf, sayı yada alt çizgi karakteri ile devam edebilir. Not: Burada "harf" ten kasıt, a-z ve A-Z'nin yanında 127'den 255'e kadar olan ASCII karakterlerdir. PHP çok sayıda öntanımlı değişken taşır. Bu değişkenleri phpinfo() fonksiyonunu çalıştırdığınızda görebilirsiniz (bu değişkenlerin bazıları, komut satırında çalıştırılan PHP'de mevcut değildir). Örnek : $a = 3; /* global */ function Test() echo $a+4; /* local */ Test(); // sonuç 7 mi acaba? :) İnternet Programcılığı 37 İnternet Programcılığı 38 İnternet Programcılığı 39 Evet, bu PHP scripti 7 sonucunu vermez, ekranda 4 görürsünüz. Bunun nedeni, Test isimli fonksiyonun içerisinde tanımlanan $a değişkeninin local (lokal, yerel) bir değişken olmasıdır. Dolayısıyla bu değişkenin fonksiyon içerisinde hiçbir değer atanmamış hali 4 ile toplandığında 0+4 olacağından sonuç da 4 olacaktır. PHP'nin burada C dilinden küçük bir farkla ayrıldığı dikkatinizi çekmiş olabilir. C'de global değişkenler fonksiyon içerisinde de geçerli olurken, PHP'de bunu yapmak için global a$; şeklinde bir tanımlama yapmak gerekir, aksi halde global değişken fonksiyona aktarılmaz. İnternet Programcılığı 40 $a = 1; $b = 2; function topla() global $a, $b; $b = $a + $b; topla(); echo $b; // çıktı: 3 Yukarıdaki script 3 sonucunu verecektir. $a ve $b değişkenlerinin fonksiyon içerisinde global olarak tanımlanması ile bu değişkenleri fonksiyon içerisinde kullanmak mümkün olmaktadır. İnternet Programcılığı 41 Değişken kapsamı ile ilgili bir başka önemli özellik ise statik değişkendir. Bir statik değişken, sadece yerel fonksiyonda varolur, fakat script çalışma esnasında bu fonksiyondan çıksa bile statik değişkenin değeri kaybolmaz. Aşağıdaki örnekte $a, normal tanımlı bir yerel değişkendir. test() fonksiyonunu 3 kere çağırmamıza rağmen, fonksiyona her girişte $a değişkenine 0 değeri atanacağından ekranda 000 çıktısını görürüz. Fakat $a değişkeni static olarak tanımlanırsa ilk değer bir defa atanır, fonksiyon tekrar çağırıldığında zaten bir değeri varsa tanımlama esnasında sıfırlanmaz. İnternet Programcılığı 42 Örnek : function test () $a = 0; // $a = 0; yerine static $a = 0; kullanılmalı echo $a; $a++; test(); test(); test(); Değişken Bir değişkenin değeri, başka bir değişken adı olarak kullanılabiliyorsa, bu tür değişkenlere "değişken değişken" adı verilir. Bu işlem $$degisken şeklinde ifade edilir. $ sembolü nasıl ki bir değişkenin değerini veriyor ise, $$ sembolü de değişkenin değerini adındaki değişkenin değerini vermektedir. Bir örnekle konuyu anlamaya çalışalım: $elma="amasya"; $meyve="elma"; $sonuc=$$meyve; echo $sonuc; // çıktı: amasya İnternet Programcılığı 43 İnternet Programcılığı 44 İnternet Programcılığı 45 5

Sabitler Bir sabit (constant), basit bir değerin tanımlayıcısıdır. Tanımlanmalarından sonra scriptin çalışması esnasında değerleri değişmez. Sabitler varsayılan olarak küçük/büyük harf duyarlıdır, ancak bir genel kural olarak daima büyük harflerle tanımlanırlar. Sabitleri tanımlarken kullanılan isimlerin kuralları, değişkenlerde olduğu gibidir. Superglobal değişkenler gibi sabitler de genel (global) bir kapsama sahiptir, yani tanımlandıktan sonra scriptin her yerinde kullanılabilirler. Sabitler, sadece define() fonksiyonu kullanılarak tanımlanabilirler, değişkenlerde olduğu gibi basit atama ($a=5 gibi) yöntemiyle sabit oluşturulamaz. Bir sabit bir kere tanımlandıktan sonra değiştirilemez ve tanımı yok edilemez. Sabitler Sabitler boolean, integer, float ve string gibi sadece ölçülebilir (scalar) veri tiplerini içerebilirler. Sabitler tanımlanırken/kullanılırken salt isimleri ile ifade edilirler; değişkenlerde olduğu gibi "$" karakteri ile sembolize edilmezler. PHP scriptinizin içerisinde o ana kadar tanımlanmış sabitleri öğrenmek için get_defined_constants() fonksiyonunu kullanabilirsiniz. Sabitler define("pi_sayisi", 3.14); define("okul", "Uludağ Üniversitesi"); echo PI_SAYISI*2; // çıktı: 6.28 echo "<br>"; echo OKUL; // çıktı: Uludağ Üniversitesi echo "<br>"; echo Okul; // çıktı: Okul (büyük/küçük harf duyarlı demiştik) İnternet Programcılığı 46 İnternet Programcılığı 47 İnternet Programcılığı 48 6