print ve echo hakkında kısaca
php.net te gezenir iken aklıma echo ile print arasında hız fark olup olmadığını test etmek geldi. Nedendir bilinmez print bana daha bir sempatik gelir ama echo kullanırdım her zaman.
Ufak bir test hazırladım ve uyguladım
[sourcecode language='php']
$echoBeganTime = microtime();
for ($i=0;$i<10000;$i++) {
echo 'Selam, ben bir yazıyım';
}
$echoEndTime = microtime();
$printBeganTime = microtime();
for ($i=0;$i<10000;$i++) {
print 'Selam, ben bir yazıyım';
}
$printEndTime = microtime();
echo "Result:\n
echo : ". ( $echoBeganTime-$echoEndTime ) ." print : ". ( $printBeganTime-$printEndTime );
[/sourcecode]
bu test 3 defa tekrarladım sonuçlar aşağıdaki gibi idi:
Result 1: echo : -0.192645
print : 0.613014
Result 2: echo : -0.117693
print : -0.250803
Result 3: echo : -0.113317
print : -0.208518
print gerçekten echo'ya göre bayağı bir yavaş çalışıyor. print üzerine biraz araştırma yaptıktan sonra. php.net'te dökümante edilmemiş bir örnek buldum. (print fonksiyonunda)
[sourcecode language='php']$b ? print "true" : print "false";[/sourcecode] normalde bu şekilde gerçekleştirmiş olduğumuz kontrollerde (yukarıda gördüğünün kod tek satırlık if else tir) php bu print fonksiyonuna izin vermemesi gerekmekte ki echo ya bu noktada izin vermiyor. Ayrıca echo(1, 2, 3); veya echo 1, 2, 3; gibi bir kullanımı destekler iken, print desteklememekte. Kaynakça: http://www.php.net/manual/en/function.echo.php http://www.php.net/manual/en/function.print.php http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
Bir şeylere başlamak: PHP Nedir ?
Merhaba, Kitabımızın ilk serisine merhaba diyelim. Bu bölümde "PHP Nedir ?" sorusuna yanıt bulacağız.
PHP Nedir ?
- PHP Nedir ?
- Geçmiş: Merdivenin Basamakları
- Tarz: Syntax
1. PHP NEDİR ?
PHP bir betik dilidir. Aslen dinamik web siteleri geliştirmek için tasarlanmış, daha sonradan geliştiriplip bir command line interface (konsole kullanımı) eklenmiştir ve tek başına grafikal yazılımlar geliştirilebilir hale gelmiştir.
2. GEÇMİŞ: Merdivenin Basamakları ?
PHP ilk olarak Rasmus Lerdorf tarafından 1994 yılında Kişisel Web Sitesi için hazırlanmış C dilinde yazılmış bir CGI(Common Gateway Interface) araçlarından oluşmaktaydı. Lerdorf başlangıçta bu Kişisel Web Sayfası Araçlarını, Kişisel web sitesini yönetmek için kullandığı bir kısım perl script'i ile değiştirmek için hazırlamıştı. Daha sonra bi programcıkları, Form Interpreter(Form Yorumlayıcı) ları ile birleştirdi ve daha yüksek fonksiyonellik kazandırdı. Form Interpreter'ın birleşmesiile birlikte PHP/FI ilk çocuğu dünyaya gelmiş oldu. PHP/FI ye daha fazla C birleştirildi böylece veri tabanları ile haberleşme imkanı daha da yükseldi bu şekilde dinamik web siteleri üretebilmesinin önü de açılmış oldu.
PHP ilk olarak 8 Haziran 1995'te genel kullanıma açıldı. Duyuruya buradan bakabilir ilk versiyonun bir kopyasını buradan yükleyebilirsiniz PHP Tools: Versiyon 1'i buradan yükleyip inceleyebilirsiniz; Rasmus Lerdorf PHP deki bugların düzeltilmesi ve kodun geliştirilmesini sağladı. Sonrasında yayınlanan PHP Version 2 günümüzdeki kullanımına benzer bir yapıya sahiptir ve perl benzeri kullanım yapısına sahiptir ama çok daha basit ve az kod yazımı sağlamakta idi.
Zeev Suraski ve Andi Gutmans, 1997'de PHP'nin parserını tekrardan yazıp 1997'de PHP/FI 2 yi bütün beta yayınları PHP 3'ün ilk alfaları olaraktan da adlandıralabilir.
PHP 3, günümüzde kullandığımız PHP'nin kullanımına çok benzemektedir. PHP 3 Haziran 1998 yayınlanmıştır.
Kısa bir aradan sonra Suraski ve Gutmans 1999 yılında Zend Technologies'i kurdular ve PHP'nin çekirdeğini tekrardan yazmaya başladılar amaçları gelişmiş yazılımların performansını arttırmak ve daha fazla modulerlik katmaktı PHP 4 'ün temel taşları atılmaya başladın ve Zend Engine 1.0 ile birlikte PHP 4 22 Mayıs 2000 de yayınlandı. PHP 5 ise 13 Temmuz 2004'te Zend Engine II ile birlikte yayınlandı. PHP 5 gelişmiş Objeye Yönelik Programlama desteğiyle birlikte geldi.
Ağustos 2008 de PHP 4 Version 4.4.9 a eriştiğinde artık geliştirimi durduruldu. Ne bir güvenlik yaması nede başka bir yenilik yapılmayacak.
PHP 5 günümüzde stable olarak kullanılan ve geliştirimi devam eden PHP versiyonudur dolayısı ile derslerimizde PHP 5'i baz alarak devam edeceğiz. PHP 5 'in ne yazıkki tam olarak Unicode veya "multibyte strings" deskteği yoktur. Bu destek PHP 6 ile birlikte gelecektir.
3. Tarzı: Syntax
Syntax bir dilin yazım tarzıdır. if () { } else {} bir syxtax tarzıdır dile göre değişkenlik gösterebilir misal if (): else: endif; gibi de olabilir dilin desteklediği yazım tarzlarına göre değişkenlik gösteririr.
Standart Tanımlama: <?php ?>
Yukarkida tanımlama sitili genel olarak kullanılır ve standart olarak kabul edilir. php.ini ile standart olarak gelir.
Kısa Tanımlama: <? ?>
Bu ise kısa tanımlamadır. Hızlı kullanım gereken yerlerde kullanılır örnek vermek gerekir ise <?php echo $y; ?> yerine <?= $y ?> yazabilirsiniz. İkiside işlevini yerine getirecektir. (echo Output işlevini görür yanı çıktı verir). php.ini ile birlikte standart olarak açık gelir.
Asp Sitili Tanımlama: <% %>
ASP kodlayan arkadaşlar bu tagı bilirler. ASP'den geçiş için rahat gelecektir. <?= ?> aynı şekilde <%= %> olarak burada da geçerlidir. php.ini ile birlikte standart olarak kapalı gelir.
PHP'nin genel olarak Vikipedia yardımı birazcık geçmişine göz attık. Çevirimde bir çok hata olduğunu kabule ediyorum
Gelişitirimlere her zaman açığım. Birazcık SYNTAX üzerine yoğunlaşacağız çünkü önemli hususlardan bir tanesi. Bir çok insan yazım hatalarından dolayı saatlerini hatta günlerini, haftalarını harcayabiliyor.
Biraz kodlarımızı inceleyelim ve PHP'nin uygulamadaki halini görelim....
[sourcecode language="php"]
echo 'Selam
';
$mesaj = 'Selam';
echo $mesaj. "\n";
?>
[/sourcecode]
Yukarda çok basit bir PHP kodu görüyorsunuz. Akşama da yukarıdaki kodun harfi harfine açıklamasını yapacağım.
Sırayla açıklayalım bakalim.
- Satırda <?php tagımız ile PHP kodlarımızın başladığını berlittik.
- Satırda echo fonksiyonunu kullanarak ekrana çıktı aldık.
- Satırda mesajımızı bir değişkene (değişkeni bir sandık olarak düşünün)atadık.
- Satırda tekrardan echo komutunu kullanarak ekranımıza çıktı aldık
peki burada ki iki örnek arasındaki nedir ? İkiside aynı sonucu vermekte. İki örnek arasındaki fark syntax farkıdır.
- "echo" : bildiğiniz üzere çıktı almamızı sağlayan fonksiyonumuz.
- " ' " (Tek Tırnak): string tanımlayıcımız. Bir string 4 farklı yöntem kullanarak elle tanımlanabilir.
- " ; " (Çift Tırnak): Satırımızın bittiğini ifade eder. Tabikide bunu kullandığımız için bir sonraki satıra geçmek zorunda değiliz ama satırımızın bittiğini ifade eder. (Line Delimiter) Örne vermek gerekir ise
[sourcecode language="php"]
echo 'Selam
';
$mesaj = 'Selam'; echo $mesaj. "\n";
?>
[/sourcecode]
Örneğimizi yukarıdaki gibi de kullanabilirdik ama kodlarımızın daha anlaşılır olması için “line delimiter” gereklidir. - 3." $ " : değişkenlerimizi tanımlamada kullanırız. Yani eğerki bir $ işareti görüyor iseniz bu %100 bir değişkeni ifade ediyordur.
- 4." . " (Nokta): İki adet ayrı obje'yi birleştirmek için kullanırız. Örnek vermek gerekir ise:
[sourcecode language="php"]
echo 'Selam
';
$mesaj = 'Selam';
$mesaj2 = ', naber';
echo $mesaj. $mesaj2 . "\n";
?>
[/sourcecode]
Gördüğünüz kodun çıktısı şu şekilde olacaktır:
Selam
Selam, naber
Bu bölümümüzü de bu şu an bitiriyoruz. Birazdan 2nci bölüm olan “Genel Script Bilgisi” ne başlayacağım.
Genel Script bilgisinde size degişken, tanımlayıcı, operatör, döngü nedir gibi şeylerin ne işe yaradığını anlatacağım
alt yapınızı oluşturacak olan Genel Scripting bilgisi üzerinde yoğuncana duracağız.
Ardından siz soracaksınız ben yanıtlayacağım.
Bir şeylere başlamak: yeni bir dil öğrenmek
Merhaba, bu gün umarım düne göre daha iyisinizdir. Bir önceki yazımda "Bir şeylere başlamadan önce" bir şeylere başlamak için gerekli olduğunu düşüklerimi yazmıştım. Daha sonra İbrahim ile olan konuşmamızda. Bana PHP Manual'ini buraya gerçirir isen çok güzel olur demişti fakat bu konuda yetersiz ve uzun zaman alacağını düşünüyorum PHP Manual'inin Türkçe'ye çevirilmesinn.
Bu husustan dolayı aklımda şu an en iyi bildiğim dil olan PHP'yi başlangıç seviyesine kadar getirecek dersleri buraya not alacağım. Gerektiğinde video ilede size destek olacağım.
Hazırlık:
Hiç bir şey kurmadan önce, hiç bir şeye başlamadan önce kendinizi hazırlamalısınız. Hiç bir zaman bir şey kolay değildir ama zorda değildir. Öncelik ile kendinize bir ajanda veya karalamak için bir şeyler alın benim bir A4 lerimi tuttrabildiğim bir zımıbırtım mevcut. Önceden HTML / XHTML bilginizin olması size büyük fayda sağlayacaktır. PHP Manual'ini takip ederekten derslerimize başlıyoruz.
Başlangıç:
- PHP Nedir ?
- PHP Nedir ?
- Geçmiş: Merdivenin Basamakları
- Tarz: Syntax
- Genel Scripting bilgisi
- PHP'nin bilgisayara kurulması
- Server Nedir ?
- Linux
- Windows
- Mac
- IDE
- IDE Nedir ?
- IDE Seçimi
- PHP Syntax
- Kodlama Standartları Üzerine Kısaca
- PHP'de Türler (Types)
- PHP'de Tanımlayıcılar (Tanımlayıcılar)
- PHP'de Değişkenler (Variables)
- PHP'de Sabitler (Constants)
- PHP'de İfadeler (Expressions)
- PHP'de Operatörler (Operators)
- PHP'de Kontrol Yapısı (Control Structures)
- PHP'de Fonksiyonlar (Functions)
Aşağıdaki gün ve gün aşağıdaki derslerimize başlayacağız. Bu gün şu an sabahın 7 si olduğu için ben yatağıma gidiyorum
Bir şeylere başlamadan önce:
Genel olarak sıkıcı olan, bir şeyler üretmeden geçen sıkıcı çalışma zamanlarıdır. Bu sebeble "uygulamada öğrenmeyi seviyorum" cümlesiyle birlikte benden ders almaya gelen bir çok insan oldu. Çoğu ise öncelik ile teoride öğrendi önce izledi öğrendi, uyguladı ve öğrendi.
Yeni, bilgisayar konusunda programlama ya başlayan insanların genel olarak nereden başlayacaklarını bilememeleri, forumlarda ve benzeri yerlerdeki insanların direkt kodları ellerine sunmaları ve benzeri şeyler kişilerin öğrenme sürecini hem yükseltti hemde zorlaştırdı. Yeni başlayan insanlar ise heveslerinden dolayı Kalemi kullanmayı bilmeden, alfabeyi yazmaya çalıştılar. Değişkenin tam anlamını bilmeden objeleri kullanmaya başladılar.
Her zaman için bir şey kullanmadan önce el kitabına bakın, bir TV olabilir, bir araba veya bir fotoğraf makinası herhangi bir şey size daha fazla bilgi katacaktır o cihaz ve konu hakkında.
Bu noktada bir kaç tavsiyem mevcut:
- İngilizce'nizi geliştirin: İngilizce Internet'in temel yapılarından biri olmuş durumda, tabiki "Blog" yerine "Günce" demeyi tercih ediyorum ama programlama dilinizde If yerine Eğer kullanamıyoruz veya foreach yerine herbiriiçin gibi bir kullanım tarzı yok hiç bir dilde ve her dilin Manual'i genel olarak İngilizce, Türkçe'ye çevirimiz Mevcut olsa bile güncel değil.
- El Kitaplarını okuyun: El Kitabı(Manual) sizin birincil yol göstereninizdir. Her şeyi sorabilir, her fonksiyon, her türlü tanımlama ve yöntem hakkında bilgi sahibi olabilirsiniz.
- El Kitablarındaki yorumları okuyun: El Kitablarındaki yorumlar size bazı zamanlarda bulamadığınız yöntemleri verecektir, Munuallere dökümante edilmemiş kullanım biçimleri ve benzeri yöntemleri size sunacaktır.
- Viki Gezinin: İlgili terimlerin vikilerini gezin Interface, Abstract, Final, Public, Protected gibi terimlerin ne için kullanıldığı hakkında bilgi edinebilirsiniz.
- IDE Kullanın: Notepad ile yazmış olduğunuz, kodlarda Debug(hata ayıklama) yapmanız gerçekten uzun zaman alacaktır, çeşitli IDE ler kullanabilirsiniz, ben PHP için Zend Studio For Eclipse kullanmaktayım daha öncesinde onun babası olan PDT kullanıyordum. Hangi dili öğrenmek istiyorsanız O dilde en çok tercih edilen IDE 'yi kullanmak zorunda değilsiniz, sizin için gerekli olanı kullanın.
- Çok çalışın, Yeni şeyler deneyin: Şu an ki öğrencim olan İbrahim Erol'un iletisinde yazan iletiyi çok sevdim sizin ile paylaşmak istiyorum:
Bilginin Efendisi Olabilmek İçin, Çalışmanın Esiri Olmak Gerekir.
Eğerki bir programlama dilini öğrenmek istiyorsanız temelinizi çok sağlam atın, bir bina gibi veya dans etmek gibi. Dans'ta temel adım çok önemlidir. Temel adımızı ne kadar iyi atarsanız ve ne kadar çok doğru temel adım üzerine çalışır iseniz o kadar iyi olursunuz.
Teşekkürler,
Murat BEŞER