Rasmus Lerdorf tarafından öncelikle kendi kişisel web sayfalarını yazmak için geliştirilmesi nedeniyle 'P'ersonal 'H'ome 'P'ages adının kısaltması olarak karşımıza çıkan PHP, HTML gömülü (HTML-embedded) bir script dilidir. özellikle web uygulamaları geliştirenlerin dinamik ve havada (on the fly) üretilen web sayfalarını hızlı bir şekilde yazmaları için düşünülmüştür. Dilin sentaksı gelştirilirken C, Java ve en çok da Perl'den esinlenilmiştir. Bu nedenle bu dillerden her hangi birisini bilen bir kullanıcı için PHP'ye geçmek hiç de zor olmamaktadır.
PHP kendi yorumlayıcısı ile birlikte kullanılan bir script dilidir. Bu yorumlayıcının yaptığı aslında HTML kodları arasına yerleştirilmiş PHP kodlarını ayrıştırıp işleyerek sonuçta saf HTML formatında bir çıktı üretmek web sunucuya iletmektir.
Dilin Yapısı
PHP, HTML gömülü bir dildir. Yani aynı dosya içinde hem HTML, hem de PHP kodu kullanılabilmektedir. Kod içinde HTML'den PHP'ye geçmek için bazı ayıraçlar kullanılması gerekir. Örneğin:
<TABLE SIZE="500">
<TR>
<TD><? Buraya PHP kodu yazılacak ?><TD>
...
HTML taglari içinde de PHP kullanmak için şu metod seçilmeli:
<TABLE SIZE="<?PHP Buraha PHP kodu yazılacak ?>" ...
Veya:
<script language="php">
Buraya PHP kodu yazılacak
</script>
Ve İlk 'Hello World' cümlemiz:
<html>
<head>
<title>Example</title>
</head>
<body>
<? echo "Hello World..."; ?>
</body>
</html>
Browser bunu bize:
Hello World...
şeklinde gösterecektir.
Değişkenler
PHP, değer ile atama (assign with value) ile birlikte adres ile atama (assign with reference) metodunu değişkenler üzerinde kullanabilir. Burada '&' işereti, önüne geçtiği değişkenin değerinin değil, adresinin işlemde kullanılmasını sağlar.
Önceden tanımlı değişkenler
PHP programcıya global olarak önceden tanımlı değişkenler sunmaktadır. Bunlar, PHP modül olarak çalıştırılıyorsa web sunucusunun gördüğü ve PHP scriptine aktardığı çevre değişkenleri, CGI değişkenleri ve sunucunun kendi ürettiği değişkenlerdir. PHP CGI olarak çalıştırılıyorsa CGI değişkenleri hariç diğerleri değişiklik gösterebilir. PHP bir başka program içinden veya komut satırından çalıştırılıyorsa web sunucunun kendi değişkenlerini görmesi zaten sözkonusu olamayacağı gibi çevre değişkeni olarak da içinde bulunulan shell veya programın set ettiği değişkenler geçerlidir. Bunların listesi phpinfo fonksiyonu ile görülebilir.Örnek.
Kullanıcıdan PHP scriptine gelen değişkenler
PHP'nin en güzel özelliklerinden birisi herhangibir çözümleme (parsing) işlemi gerektirmeden dışarıdan gelen değişkenlerin çok rahat kullanılabilmesi:
<form action="foo.php3" method="post">
Adınız: <input type="text" ad="name"><br>
<input type="submit" name="submit" value="Tamam">
</form>
Yukarıdaki formdan gönderilen değişkenler PHP içinde aşağıdaki gibi doğrudan kullanılanılabilir:
<? echo "Adiniz:".$name; ?>
Variable variables
Adı dinamik değişebilen değişkenler (variable variables) programlamayı oldukça esnekleştiriyor. Yalnızca recursive yapılabileceğini düşündüğünüz pekçok işi bunlara yaptırabilirsiniz. Örneğin aşağıdaki kod çıktı olarak 'hello world' basar:
$a = "hello";
$$a = "world";
echo "$a $a{$a}";
Type Juggling & Type Casting
PHP, integer, float, string, array gibi çeşitli değişken tipleri içerir. Ancak değişkelerinizin tipi sabit değildir. Yani çalışma anında değişkeninizin tipini değiştirebilirsiniz (type juggling).
İstenmeyen durumlar oluşmaması için type casting kullanılarak da değişkenin değerinin nasıl yorumlanmasını istediğimizi belirtebiliriz.
Diziler
eval( 'echo "Merhaba";' );
Modülerlik için include ve require fonksiyonları kullanılabilir.
Dosya upload etme (file uploads) ve HTTP bağlantılarını ele alma (connection handling) gibi gelişmiş özellikler de PHP ile beraber geliyor.
PHP kendi yorumlayıcısı ile birlikte kullanılan bir script dilidir. Bu yorumlayıcının yaptığı aslında HTML kodları arasına yerleştirilmiş PHP kodlarını ayrıştırıp işleyerek sonuçta saf HTML formatında bir çıktı üretmek web sunucuya iletmektir.
Dilin Yapısı
PHP, HTML gömülü bir dildir. Yani aynı dosya içinde hem HTML, hem de PHP kodu kullanılabilmektedir. Kod içinde HTML'den PHP'ye geçmek için bazı ayıraçlar kullanılması gerekir. Örneğin:
<TABLE SIZE="500">
<TR>
<TD><? Buraya PHP kodu yazılacak ?><TD>
...
HTML taglari içinde de PHP kullanmak için şu metod seçilmeli:
<TABLE SIZE="<?PHP Buraha PHP kodu yazılacak ?>" ...
Veya:
<script language="php">
Buraya PHP kodu yazılacak
</script>
Ve İlk 'Hello World' cümlemiz:
<html>
<head>
<title>Example</title>
</head>
<body>
<? echo "Hello World..."; ?>
</body>
</html>
Browser bunu bize:
Hello World...
şeklinde gösterecektir.
Değişkenler
PHP, değer ile atama (assign with value) ile birlikte adres ile atama (assign with reference) metodunu değişkenler üzerinde kullanabilir. Burada '&' işereti, önüne geçtiği değişkenin değerinin değil, adresinin işlemde kullanılmasını sağlar.
Önceden tanımlı değişkenler
PHP programcıya global olarak önceden tanımlı değişkenler sunmaktadır. Bunlar, PHP modül olarak çalıştırılıyorsa web sunucusunun gördüğü ve PHP scriptine aktardığı çevre değişkenleri, CGI değişkenleri ve sunucunun kendi ürettiği değişkenlerdir. PHP CGI olarak çalıştırılıyorsa CGI değişkenleri hariç diğerleri değişiklik gösterebilir. PHP bir başka program içinden veya komut satırından çalıştırılıyorsa web sunucunun kendi değişkenlerini görmesi zaten sözkonusu olamayacağı gibi çevre değişkeni olarak da içinde bulunulan shell veya programın set ettiği değişkenler geçerlidir. Bunların listesi phpinfo fonksiyonu ile görülebilir.Örnek.
Kullanıcıdan PHP scriptine gelen değişkenler
PHP'nin en güzel özelliklerinden birisi herhangibir çözümleme (parsing) işlemi gerektirmeden dışarıdan gelen değişkenlerin çok rahat kullanılabilmesi:
<form action="foo.php3" method="post">
Adınız: <input type="text" ad="name"><br>
<input type="submit" name="submit" value="Tamam">
</form>
Yukarıdaki formdan gönderilen değişkenler PHP içinde aşağıdaki gibi doğrudan kullanılanılabilir:
<? echo "Adiniz:".$name; ?>
Variable variables
Adı dinamik değişebilen değişkenler (variable variables) programlamayı oldukça esnekleştiriyor. Yalnızca recursive yapılabileceğini düşündüğünüz pekçok işi bunlara yaptırabilirsiniz. Örneğin aşağıdaki kod çıktı olarak 'hello world' basar:
$a = "hello";
$$a = "world";
echo "$a $a{$a}";
Type Juggling & Type Casting
PHP, integer, float, string, array gibi çeşitli değişken tipleri içerir. Ancak değişkelerinizin tipi sabit değildir. Yani çalışma anında değişkeninizin tipini değiştirebilirsiniz (type juggling).
İstenmeyen durumlar oluşmaması için type casting kullanılarak da değişkenin değerinin nasıl yorumlanmasını istediğimizi belirtebiliriz.
Diziler
- Dizilere rastgele (random) erişim yanında sıradan (sequential) erişim ve kuyruk (que) veri yapısı içinde kullanma özellikleri kazandırılmıştır,
- PHP'de, Perl'de olduğu gibi associative diziler tanımlanabilir. Bu dizilere (random) erişim yanında sıradan erişim olanağı veren list ve each gibi fonksiyonlar da tanımlanmıştır,
- Diziler çalışma anında büyüyebilir. (Bu özellik PHP yorumlayıcı konfigürasyonunda gerekli ayar yapılmadan dikkatsiz kullanılırsa işletim sisteminin bile göçmesine sebep olabilir).
- Dizilerin index boyutları da dinamik olarak değiştirilebilir.
- Recursive fonksiyon çağrıları yapılabilir.
- Adı dinamik değişen fonksiyonlar (variable functions) kullanılabilir.
- Static değişkenler kullanılarak fonksiyonlara geri dönüşlerde değişkenin son aldığı değer kullanılabilir.
- Fonksiyon parametreleri standart değer alabilecek şekilde belirtilebilir.
- Fonksiyonlar değişen sayıda parametre kullanabilir.
- Fonksiyon dışındaki global değişkenlerin kullanımı için tanımlama işi programcıya bırakılmıştır.
eval( 'echo "Merhaba";' );
Modülerlik için include ve require fonksiyonları kullanılabilir.
Dosya upload etme (file uploads) ve HTTP bağlantılarını ele alma (connection handling) gibi gelişmiş özellikler de PHP ile beraber geliyor.
Son düzenleyen: Moderatör: