<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Habertux.com &#124; Linux, Özgür Yazılım ve Açık Kaynak Portalı &#187; İnternet</title>
	<atom:link href="http://www.habertux.com/kategori/yazilim/internet/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.habertux.com</link>
	<description>Linux&#039;a dair</description>
	<lastBuildDate>Fri, 23 Jul 2010 20:25:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>MVC</title>
		<link>http://www.habertux.com/yazilim/internet/mvc/</link>
		<comments>http://www.habertux.com/yazilim/internet/mvc/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 17:35:52 +0000</pubDate>
		<dc:creator>Erdal Güçlü</dc:creator>
				<category><![CDATA[İnternet]]></category>
		<category><![CDATA[controller]]></category>
		<category><![CDATA[mantık]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[oop]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[view]]></category>
		<category><![CDATA[Yazılım]]></category>

		<guid isPermaLink="false">http://www.habertux.com/?p=113</guid>
		<description><![CDATA[MVC (Model­View­Controller) herhangi bir PHP yazılımcısının olmazsa­ olmazları arasında bulunması gereken kodlama biçimidir. http://en.wikipedia.org/wiki/Model­view­controller adresi MVC&#8217;yi teorik olarak kavramak için iyi bir başlangıç olacaktır. Ancak biz işin pratiğine odaklanacağız ve kendimize ait oldukça basit bir framework yaratacağız. Burada söz konusu olacak kod ve terimleri anlamak için PHP5 ve OOP konusunda yeterli bilgiye sahip olmanız gerekmektedir. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://img32.imageshack.us/img32/8468/mvc.png" border="0" alt="MVC" width="323" height="310" align="left" />MVC (Model­View­Controller) herhangi bir PHP yazılımcısının olmazsa­ olmazları arasında bulunması gereken kodlama biçimidir. <a href="http://en.wikipedia.org/wiki/Modelviewcontroller" target="_blank">http://en.wikipedia.org/wiki/Model­view­controller</a> adresi MVC&#8217;yi teorik olarak kavramak için iyi bir başlangıç olacaktır.</p>
<p>Ancak biz işin pratiğine odaklanacağız ve kendimize ait oldukça basit bir framework yaratacağız.</p>
<p>Burada söz konusu olacak kod ve terimleri anlamak için PHP5 ve OOP konusunda yeterli bilgiye sahip olmanız gerekmektedir.</p>
<p><strong>Nedir bu M?, V? ve C?</strong></p>
<p><strong>M (Model)</strong></p>
<p>M (Model), İş Mantığı (Business­Logic)1 ve data işleme süreçlerini yürütür. C (Controller) tarafından gönderilen emirlere göre hareket eder. Bilgi işleme sürecinden sonra datayı C&#8217;ye, diğer modellere veya<br />
doğrudan V (View)&#8217;ye gönderir.</p>
<p><strong>V (View)</strong></p>
<p>V (View) son kullanıcıya gösterilecek olan datanın sunumu ile ilgilenir. V, bu bilgiyi C veya M&#8217;den alır, aynı zamanda son kullanıcıdan gelen talepleri C&#8217;ye iletir.</p>
<p><strong>C (Controller)</strong></p>
<p>C ise sistemin ana kısmıdır. Gelen talepleri kontrol eder ve sistemin diğer elemanlarının (M,V) bilgiyi uygun şekilde alıp, göndermelerini sağlar.</p>
<p>Kısacası, C beynimiz, M sinirlerimiz, V ise kas, burun, göz, kulak vb. kısacası dış dünya ile fiziksel ilişkisi olan herşeyimizdir.</p>
<p>Sevdiğimiz insanı gördüğümüzde gözümüz bu veriyi beyinimize yollar (V ­&gt; C), beynimiz buna bir tepki vererek yüz sinirlerine emir gönderir (C ­&gt; M), sinirlerimiz beyinden gelen emri işleyerek kasları gerer ve gülümsememizi sağlarlar (M ­&gt; V).  Tüm MVC süreci bununla özetlenebilir.</p>
<p>Şimdi sıra dünyanın en basit framework&#8217;ünü yazmaya geldi. Bu basit framework&#8217;te kullanıcıdan geldiğini varsaydığımız bir datayı güvenlik şemasından geçirerek ekrana basacağız. Böylece bir MVC  Framework&#8217;ünün nasıl işlediğine dair en basit ve temel bilgiyi edinmiş olacağız.</p>
<p>İşe klasör yapımından başlayacağız ve belki serinin devam eden yazılarında bu framework yapısını birlikte geliştireceğiz.</p>
<p>1 İş Mantığı bir veritabanı ve kullanıcı arayüzü arasında gerçekleşen bilgi değiş tokuşunu yöneten fonksiyonel algoritamları temsil eder. (Kaynak: Wikipedia)</p>
<p>FrameWork<br />
Adlandırma</p>
<p>Yazıya uygun şekilde klasorlerimizi de “m”, “v” ve “c” şeklinde adlandırmak en iyisi olacaktır. Bu klasörlerle birlikte index.php dosyamızıda sistemimize ekleyeceğiz:</p>
<p>index.php<br />
Şimdi her birinin içerisine klasör adları ile ana PHP dosyalarını yükleyelim. “m” altına m.php,  “v” altına v.php ve “c” altına c.php ve index.php içerisine Model, View ve Controller ana dosyalarını yükleyelim:</p>
<p class="validate">require_once(&#8220;m/m.php&#8221;);<br />
require_once(&#8220;v/v.php&#8221;);<br />
require_once(&#8220;c/c.php&#8221;);<br />
?&gt;</p>
<p>Varsayalım kullanıcı id sini index.php dosyamızda bir form aracılığıyla gönderen kullanıcılarımız var ve biz bunu veritabanımızda işleterek oturum açıyoruz ve örneğimiz basit olsun diye bu datanın sadece numaralardan oluştuğunu ve form yazımını işe karıştırmamak için datanın post edilmiş olduğunu varsayacağız.</p>
<p class="validate">require_once(&#8220;m/m.php&#8221;);<br />
require_once(&#8220;v/v.php&#8221;);<br />
require_once(&#8220;c/c.php&#8221;);<br />
$id = &#8217;123456789&#8242;;                    // Normal Kullanıcıdan gelen post değeri.<br />
$id = &#8216;delete * from&#8217;;                // Sisteme Saldıran Kullanıcıdan gelen post değeri.<br />
?&gt;</p>
<p>Bu dataları alt alta yazdım ancak ayrı ayrı varsayalım. Yani sistemi test ederken birinden birini kaldırın.</p>
<p>index.php dosyamıza daha sonra dönüş yapacağız ama önce Controller dosyamızı oluşturmaya başlayalım.</p>
<p>c/c.php<br />
Controller sınıf dosyamız, daha önce bahsettiğimiz  gibi datayı işleyen değil Model&#8217;e datayı işlemesini emreden dosyamız olacak. Bunun için yine örneğe uygun devam ederek “c” adlı bir sınıf yaratalım:</p>
<p class="validate">class c {<br />
}</p>
<p>Böylece c sınıfını yaratmış olduk. Ek bilgi olarak sınıf dosyamızı kapatmadığımı farketmişsinizdir. Bu PHP ve Zend Engine geliştiricileri tarafından dosya sonunda boş satırlar oluşmasını engellemek için include edilen dosyalar için önerilir.</p>
<p>Şimdi sınıfımıza M&#8217;ye emir verecek bir fonksiyon eklememiz gerekiyor:</p>
<p class="validate">class c {<br />
public function kullaniciya_guveniyormuyuz($id) {<br />
}<br />
}</p>
<p>Şimdi de ilk emrimizi verelim. Bunu yaparken m.php içerisindeki sınıfa “m” adını vereceğimizi varsayalım:</p>
<p class="validate">class c {<br />
public function kullaniciya_guveniyormuyuz($id) {<br />
$m = new m();<br />
$cevap = $m-&gt;cevabi_soyle($id);<br />
}<br />
}</p>
<p>Böylece M&#8217;ye emrimizi verdik. M değeri $id üzerinde işlem yapacak, bir sonuç çıkaracak ve kullanıcıya güvenilip, güvenilmeyeceğini tespit edecektir. Daha sonra c.php dosyamıza döneceğiz.</p>
<p>Şimdi m.php dosyamızı hazırlamaya başlayalım ve C&#8217;nin gönderdiği emri işleyelim.</p>
<p class="validate">m/m.php<br />
class m {<br />
public function cevabi_soyle($id) {<br />
if (is_numeric($id)) {<br />
$cevap = &#8220;Evet kullanıcı güvenilir. Oturum açalım&#8221;;<br />
} else {<br />
$cevap = &#8220;Sakın oturum açma, kullanıcı güvenilir değil&#8221;;<br />
}<br />
return $cevap;<br />
}<br />
}</p>
<p>Yukarıda C&#8217;nin emri üzerine kullanıcının girdiği id&#8217;nin numerik olup olmadığını kontrol ettik ve eğer numerik ise kullanıcıya güvenip, oturup açmayı, değilse işlemi yapmamayı söyledik. Tabi gerçek bir projede buralarda oturum, veritabanı işlemleri ve hata komutları verdiğimizi varsaymalısınız.</p>
<p>Şimdi c.php dosyamıza geri dönelim ve M&#8217;nin bize verdiği cevabı değerlendirelim.</p>
<p class="validate">c/c.php<br />
class c {<br />
public function kullaniciya_guveniyormuyuz($id) {<br />
$m = new m();<br />
$cevap = $m-&gt;cevabi_soyle($id);<br />
$v = new v();<br />
$v-&gt;cevabi_goster($cevap);<br />
$v-&gt;goster();<br />
}<br />
}</p>
<p class="contentpane">Görüldüğü gibi şimdi de V&#8217;ye M&#8217;den gelen sonucu basma emri veriyoruz. Son olarak V (View) dosyamızı yaratma zamanı geldi. Yukarıda v.php içerisinde oluşturacağımız gösterme sınıfının adını “v” varsaydık.</p>
<p class="validate">v/v.php<br />
class v {<br />
private $id;<br />
public function goster() {<br />
echo $this-&gt;cevap;<br />
}<br />
public function cevabi_goster($cevap) {<br />
$this-&gt;cevap = $cevap;<br />
}<br />
}</p>
<p>v adlı sınıfımızı oluşturduk ve M&#8217;den C&#8217;ye dönen cevabı bastık. Geriye kalan tek şey index.php içerisinde Controller dosyasını çalıştırmak:</p>
<p class="validate">index.php<br />
require_once(&#8220;m/m.php&#8221;);<br />
require_once(&#8220;v/v.php&#8221;);<br />
require_once(&#8220;c/c.php&#8221;);<br />
$id = &#8217;123456789&#8242;;                    // Normal Kullanıcı.<br />
$id = &#8216;delete * from&#8217;;                // Sisteme Saldıran Kullanıcı.<br />
$c = new c();<br />
$c-&gt;kullaniciya_guveniyormuyuz($id);<br />
?&gt;</p>
<p>Artık mini MVC framework&#8217;umuzu bitirdik, test edelim:</p>
<p class="validate">$id = &#8217;123456789&#8242;;<br />
için sonuç:<br />
Evet kullanıcı güvenilir. Oturum açalım<br />
$id = &#8216;delete * from&#8217;;<br />
için sonuç:<br />
Sakın oturum açma, kullanıcı güvenilir değil</p>
<p>Sanırım oldukça anlaşılır bir şekilde MVC yapısını inceledik. Fırsat oldukça MVC yapısını incelemeye devam edeceğiz.</p>
<p>Eğer sorularnız olursa bu başlık altından bana ulaşabilirsiniz.</p>
<p><strong>Altan Tanrıverdi</strong></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.habertux.com/yazilim/internet/mvc/feed" rel="nofollow" class="external" title="Bu makale için yorumlara üye ol.">Bu makale için yorumlara üye ol.</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.habertux.com/yazilim/internet/mvc/&amp;t=MVC" rel="nofollow" class="external" title="Bunu paylaş:Facebook">Bunu paylaş:Facebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=MVC&amp;link=http://www.habertux.com/yazilim/internet/mvc/" rel="nofollow" class="external" title="Bunu paylaş:FriendFeed">Bunu paylaş:FriendFeed</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=MVC&amp;body=Link: http://www.habertux.com/yazilim/internet/mvc/ (shareaholic aracılığıyla)%0D%0A%0D%0A----%0D%0A MVC%20%28Model%C2%ADView%C2%ADController%29%20herhangi%20bir%20PHP%20yaz%C4%B1l%C4%B1mc%C4%B1s%C4%B1n%C4%B1n%20olmazsa%C2%AD%20olmazlar%C4%B1%20aras%C4%B1nda%20bulunmas%C4%B1%20gereken%20kodlama%20bi%C3%A7imidir.%20http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FModel%C2%ADview%C2%ADcontroller%20adresi%20MVC%27yi%20teorik%20olarak%20kavramak%20i%C3%A7in%20iyi%20bir%20ba%C5%9Flang%C4%B1%C3%A7%20olacakt%C4%B1r.%0D%0A%0D%0AAncak%20biz%20i%C5%9Fin%20prati%C4%9Fine%20odak" rel="nofollow" class="external" title="Bunu e-postala:Gmail">Bunu e-postala:Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.habertux.com/yazilim/internet/mvc/&amp;title=MVC" rel="nofollow" class="external" title="Bunu ekle:Google Bookmarks">Bunu ekle:Google Bookmarks</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.habertux.com/yazilim/internet/mvc/&amp;imageurl=" rel="nofollow" class="external" title="Google Buzz'da paylaş:">Google Buzz'da paylaş:</a>
		</li>
		<li class="shr-identica">
			<a href="http://identi.ca//index.php?action=newnotice&amp;status_textarea=Reading:+&quot;MVC&quot;+-+from+http://tinyurl.com/ydrawx4" rel="nofollow" class="external" title="Bunu postala:Identica">Bunu postala:Identica</a>
		</li>
		<li class="shr-myspace">
			<a href="http://www.myspace.com/Modules/PostTo/Pages/?u=http://www.habertux.com/yazilim/internet/mvc/&amp;t=MVC" rel="nofollow" class="external" title="Bunu postala:MySpace">Bunu postala:MySpace</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://www.habertux.com/yazilim/internet/mvc/" rel="nofollow" class="external" title="Bunu paylaş:Technorati">Bunu paylaş:Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=MVC+-+http://tinyurl.com/ydrawx4&amp;source=shareaholic" rel="nofollow" class="external" title="Bunu Tweet'le!">Bunu Tweet'le!</a>
		</li>
		<li class="shr-yahoomail">
			<a href="http://compose.mail.yahoo.com/?Subject=MVC&amp;body=Link: http://www.habertux.com/yazilim/internet/mvc/ (shareaholic aracılığıyla)%0D%0A%0D%0A----%0D%0A MVC%20%28Model%C2%ADView%C2%ADController%29%20herhangi%20bir%20PHP%20yaz%C4%B1l%C4%B1mc%C4%B1s%C4%B1n%C4%B1n%20olmazsa%C2%AD%20olmazlar%C4%B1%20aras%C4%B1nda%20bulunmas%C4%B1%20gereken%20kodlama%20bi%C3%A7imidir.%20http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FModel%C2%ADview%C2%ADcontroller%20adresi%20MVC%27yi%20teorik%20olarak%20kavramak%20i%C3%A7in%20iyi%20bir%20ba%C5%9Flang%C4%B1%C3%A7%20olacakt%C4%B1r.%0D%0A%0D%0AAncak%20biz%20i%C5%9Fin%20prati%C4%9Fine%20odak" rel="nofollow" class="external" title="Bunu e-postala:Yahoo! Mail">Bunu e-postala:Yahoo! Mail</a>
		</li>
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://www.habertux.com/yazilim/internet/mvc/&amp;n=MVC&amp;pli=1" rel="nofollow" class="external" title="Bunu blogla:Blogger">Bunu blogla:Blogger</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22MVC%22&amp;body=Link: http://www.habertux.com/yazilim/internet/mvc/ (shareaholic aracılığıyla)%0D%0A%0D%0A----%0D%0A MVC%20%28Model%C2%ADView%C2%ADController%29%20herhangi%20bir%20PHP%20yaz%C4%B1l%C4%B1mc%C4%B1s%C4%B1n%C4%B1n%20olmazsa%C2%AD%20olmazlar%C4%B1%20aras%C4%B1nda%20bulunmas%C4%B1%20gereken%20kodlama%20bi%C3%A7imidir.%20http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FModel%C2%ADview%C2%ADcontroller%20adresi%20MVC%27yi%20teorik%20olarak%20kavramak%20i%C3%A7in%20iyi%20bir%20ba%C5%9Flang%C4%B1%C3%A7%20olacakt%C4%B1r.%0D%0A%0D%0AAncak%20biz%20i%C5%9Fin%20prati%C4%9Fine%20odak" rel="nofollow" class="external" title="Bunu bir arkadaşa e-postala">Bunu bir arkadaşa e-postala</a>
		</li>
		<li class="shr-ning">
			<a href="http://bookmarks.ning.com/addItem.php?url=http://www.habertux.com/yazilim/internet/mvc/&amp;T=MVC" rel="nofollow" class="external" title="Bunu ekle:Ning">Bunu ekle:Ning</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.habertux.com/yazilim/internet/mvc/&amp;title=MVC" rel="nofollow" class="external" title="İyi bir şeye mi denk geldin? StumbleUpon üzerinde paylaş">İyi bir şeye mi denk geldin? StumbleUpon üzerinde paylaş</a>
		</li>
		<li class="shr-tumblr">
			<a href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.habertux.com%2Fyazilim%2Finternet%2Fmvc%2F&amp;t=MVC" rel="nofollow" class="external" title="Bunu paylaş:Tumblr">Bunu paylaş:Tumblr</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.habertux.com/yazilim/internet/mvc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP&#8217;de Nesne Tabanlı Programlama&#8217;ya Hızlı Giriş Kılavuzu</title>
		<link>http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu/</link>
		<comments>http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 17:28:53 +0000</pubDate>
		<dc:creator>Erdal Güçlü</dc:creator>
				<category><![CDATA[İnternet]]></category>
		<category><![CDATA[giriş]]></category>
		<category><![CDATA[Kılavuz]]></category>
		<category><![CDATA[nesne]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programla]]></category>
		<category><![CDATA[tabanlı]]></category>

		<guid isPermaLink="false">http://www.habertux.com/?p=106</guid>
		<description><![CDATA[Kılavuzu mümkün olduğunca kısa tutmak için önsöz bir sonraki cümle ile bitiyor. Bu konuyu anlamak için PHP&#8217;nin temel yapıtaşları sayılan fonksiyonlar ve değişkenler konusunda net bir bilgiye sahip olmalısınız. Sınıf yaratmak için anahtar kelime class&#8217;tır. sinif.php adında bir dosya yaratalım: class otomobil { } ?&#62; Böylece otomobil adında bir sınıf yarattık. Şimdi hemen data ekleyelim: [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://img22.imageshack.us/img22/1917/phpe.jpg" border="0" alt="Php" width="230" height="230" align="left" />Kılavuzu mümkün olduğunca kısa tutmak için önsöz bir sonraki cümle ile bitiyor. Bu konuyu anlamak için PHP&#8217;nin temel yapıtaşları sayılan fonksiyonlar ve değişkenler konusunda net bir bilgiye sahip olmalısınız.</p>
<p style="margin-bottom: 0cm;">Sınıf yaratmak için anahtar kelime class&#8217;tır. sinif.php adında bir dosya yaratalım:</p>
<p style="margin-bottom: 0cm;">class otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">Böylece otomobil adında bir sınıf yarattık. Şimdi hemen data ekleyelim:</p>
<p style="margin-bottom: 0cm;">class otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">var $marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Görüldüğü gibi şimdi de $marka adında bir değişken bilgisini sınıfımıza ekledik. Sırada fonksiyonlar var:</p>
<p style="margin-bottom: 0cm;">class otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">var $marka;</p>
<p style="margin-bottom: 0cm;">function marka_tanimla($yeni_marka)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = $yeni_marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">function marka_goster()</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">return $this-&gt;marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Görüldüğü gibi iki fonksiyon ekledik marka_tanimla() ve marka_goster(). Sanırım fonksiyonların görevlerini adlarından tahmin ediyoruz. Ama yeni bir kavram görüyoruz: $this-&gt;. $this-&gt; ifadesi geçerli nesneyi işaret eder. Diğer bir deyişle, $this-&gt; özel bir referans değişkenidir. $this-&gt; ifadesini bir değişkene erişirken ve mevcut sınıfın diğer fonksiyonlarına ulaşırken kullanırız.</p>
<p style="margin-bottom: 0cm;">Örneği açıklamak gerekirse; $this-&gt;marka = $yeni_marka; ile $marka adlı değişkenimize marka_tanimla() fonksiyonuna gelen $yeni_marka değerini atamış olduk.</p>
<p style="margin-bottom: 0cm;">return $this-&gt;marka; ile ise $marka değişkenini doğrudan return etmiş oluyoruz.</p>
<p style="margin-bottom: 0cm;">Buraya bir not düşerek devam edelim. Nesne tabanlı PHP için fonksiyonlara &#8220;method&#8221;, değişkenlerede &#8220;özellik&#8221; diyeceğiz.</p>
<p style="margin-bottom: 0cm;">Şimdi index.php dosyası yaratalım ve sinif.php&#8217;yi include edelim. Sınıflarla, normal PHP kodlarını aynı PHP dosyası içerisine yerleştirmeyin.</p>
<p style="margin-bottom: 0cm;">Not: Başka bir php dosyasını eklemenin iki yöntemi vardır. Aralarında ki fark ise hangisini kullanacağımızı belirler.</p>
<p style="margin-bottom: 0cm;">include ( ve include_once )</p>
<p style="margin-bottom: 0cm;">require ( ve require_once )</p>
<p style="margin-bottom: 0cm;">Include; dosyayı eklerken, dosya bulunamadığı taktirde sadece uyarı vererek ana kodumuzun çalışmasına kaldığı yerden devam etmesine izin verir. Require ise dosya bulunamadığında “fatal error” vererek kodu durdurmaktadır. Require genel olarak olmazsa olmaz dosyalar için kullanılır.</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Sıra geldi nesne tabanlı programlamanın temeli olan nesne&#8217;yi yaratmaya. Bu işleme örnekleme(instantiation) denir.</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">$ford = new otomobil();</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Burada $ford &#8220;özelliği&#8221; (değişkeni)&#8217;ni kulp olarak düşünün ve otomobil sınıfınıda çaydanlık. Kulptan tutarak çaydanlığı kontrol etmiş oluyoruz. Onu kaldırıyoruz, eğiyoruz vs. Kodu çalıştırdığınızda sonuç döndürmeyecektir çünkü PHP&#8217;ye hala yaratılan nesne ile ne yapması gerektiğini söylemedik. Buradaki &#8220;new&#8221; ifadesini sınıf dışından bir nesne yaratmak için kullanıyoruz.</p>
<p style="margin-bottom: 0cm;">Doğru kullanım şekilleri:</p>
<p style="margin-bottom: 0cm;">$ford = new otomobil();</p>
<p style="margin-bottom: 0cm;">$ford = new otomobil;</p>
<p style="margin-bottom: 0cm;">Yanlış kullanım şekli:</p>
<p style="margin-bottom: 0cm;">$ford = new &#8216;otomobil&#8217;;</p>
<p style="margin-bottom: 0cm;">Şimdi üç farklı otomobil markası yaratalım:</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">$ford =         new otomobil();</p>
<p style="margin-bottom: 0cm;">$fiat =         new otomobil();</p>
<p style="margin-bottom: 0cm;">$opel =         new otomobil();</p>
<p style="margin-bottom: 0cm;">$ford    -&gt;    marka_tanimla(&#8216;FORD&#8217;);</p>
<p style="margin-bottom: 0cm;">$fiat    -&gt;    marka_tanimla(&#8216;FIAT&#8217;);</p>
<p style="margin-bottom: 0cm;">$opel    -&gt;    marka_tanimla(&#8216;OPEL&#8217;);</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Markaları görüntüleyelim:</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">$ford =        new otomobil();</p>
<p style="margin-bottom: 0cm;">$fiat =        new otomobil();</p>
<p style="margin-bottom: 0cm;">$opel =        new otomobil();</p>
<p style="margin-bottom: 0cm;">$ford    -&gt;    marka_tanimla(&#8216;FORD&#8217;);</p>
<p style="margin-bottom: 0cm;">$fiat    -&gt;    marka_tanimla(&#8216;FIAT&#8217;);</p>
<p style="margin-bottom: 0cm;">$opel    -&gt;    marka_tanimla(&#8216;OPEL&#8217;);</p>
<p style="margin-bottom: 0cm;">echo $ford     -&gt;      marka_goster()     .  &#8221;<br />
&#8220;;</p>
<p style="margin-bottom: 0cm;">echo $fiat     -&gt;      marka_goster()     .  &#8221;<br />
&#8220;;</p>
<p style="margin-bottom: 0cm;">echo $opel     -&gt;      marka_goster()     .  &#8221;<br />
&#8220;;</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Nesne özelliklerine erişim için methodları kullanmak zorunda değilsiniz, doğrudan ­&gt; ve değişken ismi ile erişebilirsiniz. Örneğin: echo $fiat-&gt;marka; size FIAT sonucunu dönderecektir ancak bu kapsamlı projelerde karışıklıklara neden olabileceğinden iyi bir yazılım şekli sayılmaz ve methodlar kullanılarak bu işlemin yapılması daha düzgün bir yoldur.</p>
<p style="margin-bottom: 0cm;">Tüm nesneler &#8220;constructor” olarak ifadelendirilen özel bir methoda sahip olabilir. Bir __construct() fonksiyonu yaratırsanız sınıfınızdan nesne yarattığınız zaman bu method otomatik olarak çağrılacaktır.</p>
<p style="margin-bottom: 0cm;">class otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">var $marka;</p>
<p style="margin-bottom: 0cm;">function __construct($marka_adi)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = $marka_adi;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">function marka_tanimla($yeni_marka)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = $yeni_marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">function marka_goster()</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">return $this-&gt;marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">__construct() methodunu doğrudan çalıştırmak için</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">$jaguar = new otomobil(&#8216;JAGUAR&#8217;);</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Görüldüğü gibi nesnemizi yaratırken, marka_tanimla() methodunu kullanmadan otomobil markasını __construct() yardımı ile tanımlamış olduk. Kontrol için:</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">$jaguar = new otomobil(&#8216;JAGUAR&#8217;);</p>
<p style="margin-bottom: 0cm;">echo &#8220;En sevdiğim otomobil markası: &#8221; . $jaguar-&gt;marka_goster();</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Not: __construct() yerine sınıfımızın adını taşıyan bir fonksiyonda aynı işlevi görür.</p>
<p style="margin-bottom: 0cm;">Ör. :</p>
<p style="margin-bottom: 0cm;">class otomobil {</p>
<p style="margin-bottom: 0cm;">function otomobil($marka_adi)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = $marka_adi;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Not: __destruct() methodu ise sınıfımız yok edilmeden önce çalıştırılacak kodları içerir. Ayrıca diğer sihirli methodları (magic methods ) (__call, __callStatic, __get, __set, __isset, __unset , __sleep, __wakeup, __toString, __set_state ve __clone) sonraki kılavuz güncellemelerinde ayrıntılı olarak işleyeceğiz.</p>
<p style="margin-bottom: 0cm;">Zend Studio kullananlar, sinif.php içerisinde  var $marka; satırının uyarı verdiğini farkedeceklerdir. Uyarıda public/private/protected niteleyicilerini (modifiers) kullanmamız önerilmektedir. ZS&#8217;nin önerdiği bu kavramlar özelliklere erişimi kontrol eden, sınırlandıran tanımlamalardır. Bu tanımlamalar ile sınıfı kullanan kodların bilgiye erişimi denetlenir.</p>
<p style="margin-bottom: 0cm;">Bilgi güvenliği ve oluşabilecek hataların minimize edilmesi ana amaçtır. Bu niteleyeciler public, protected, private  (ayrıca static niteleyicisini birazdan inceleyeceğiz) olarak sıralanır. Bunlar arasında public varsayılan niteleyicidir, yani niteleyeci kullanmadığınız takdirde PHP bunu public olarak hesaba katacaktır. Örneğimiz üzerinden devam edelim:</p>
<p style="margin-bottom: 0cm;">class otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">var $marka;</p>
<p style="margin-bottom: 0cm;">public $model;</p>
<p style="margin-bottom: 0cm;">protected $fiyat;</p>
<p style="margin-bottom: 0cm;">private $satis_miktari;</p>
<p style="margin-bottom: 0cm;">function __construct($marka_adi)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = $marka_adi;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">function marka_tanimla($yeni_marka)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = $yeni_marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">function marka_goster()</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">return $this-&gt;marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">Görüldüğü gibi örneğimiz otomobil galerisi için yazılabilecek bir uygulamaya dönüşmeye başladı. Galeri sahibi için otomobilin çeşitli özelliklerini tutmak mümkün iken bunlar arasında değerine göre bilgiyi korumayı da sağlamış oluyor. Anlamayı kolaylaştırmak için kabaca örneklendirelim.</p>
<p style="margin-bottom: 0cm;">Alfa Romeo markasının Brera modelini 60000 YTL&#8217;ye satıyoruz ve bu yıl bunlardan 2 adet sattık. Brera modelini sattığımızın herkes tarafından bilinmesinin bir sakıncası yok, ancak fiyatını herkes bilsin istemeyiz, çünkü koşullara, faiz oranlarına, müşteriye göre fiyat değişiklik gösterebilir. Bu noktada onu protected olarak niteliyoruz. Peki kaç adet sattığımız? Bunu özellikle rakipler başta olmak üzere herkesten korumak için tamamen private olarak gizleyebiliriz.</p>
<p style="margin-bottom: 0cm;">Bir ek not ekleyelim; var $marka; satırı aslında PHP tarafından public $marka; olarak algılanmaktadır. var&#8217;ı public&#8217;e çevirip kaydettiğinizde ZS&#8217;nin uyarıyı kaldırdığını göreceksiniz. Bir özelliği private olarak tanımladığınızda bu özelliğe sadece mevcut sınıf içerisinden erişilebilir. protected olarak tanımladığınızda ise ancak mevcut sınıf ve onu genişleten sınıflardan erişilebilir. public&#8217;te ise bir erişim kısıtlaması yoktur. Konuyu daha iyi anlamak için özelliklere varsayılan değerler atayalım.</p>
<p style="margin-bottom: 0cm;">Örneğin:</p>
<p style="margin-bottom: 0cm;">class otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">public $marka = &#8220;Alfa Romeo&#8221;;</p>
<p style="margin-bottom: 0cm;">public $model = &#8220;Brera&#8221;;</p>
<p style="margin-bottom: 0cm;">protected $fiyat = &#8220;60000&#8243;;</p>
<p style="margin-bottom: 0cm;">private $satis_miktari = &#8220;2&#8243;;</p>
<p style="margin-bottom: 0cm;">function marka_tanimla($yeni_marka)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = $yeni_marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">function marka_goster()</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">return $this-&gt;marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Bu değerleri index.php ile almaya çalışalım:</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">$degeroku = new otomobil();</p>
<p style="margin-bottom: 0cm;">echo &#8220;Marka: &#8221; . $degeroku-&gt;marka;</p>
<p style="margin-bottom: 0cm;">echo &#8220;Model: &#8221; . $degeroku-&gt;model;</p>
<p style="margin-bottom: 0cm;">echo &#8220;Fiyat: &#8221; . $degeroku-&gt;fiyat;</p>
<p style="margin-bottom: 0cm;">echo &#8220;Satış Miktarı: &#8221; . $degeroku-&gt;satis_miktari;</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Bu kodu çalıştırdığınızda Zend kullananlar debug output&#8217;ta şöyle bir sonuç alacaklardır:</p>
<p style="margin-bottom: 0cm;">Marka: Alfa RomeoModel: Brera</p>
<p style="margin-bottom: 0cm;"><strong>Fatal error</strong>: Cannot access protected property otomobil::$fiyat in <strong>/home/altan/Zend/ workspaces/DefaultWorkspace/kilavuz/oop/index.php</strong> on line <strong>6</strong></p>
<p style="margin-bottom: 0cm;">Görüldüğü gibi Marka ve Model değerleri gelirken, sınıf dışından protected veya private bir özelliğin değerini alamıyoruz. Tüm bunlar methodlar (fonksiyonlar) için de geçerlidir. Şimdi genişletilmiş (extended) sınıflara gelelim.</p>
<p style="margin-bottom: 0cm;">Herhangi bir sınıfı extends ifadesiyle genişletebiliriz. Böylece sınıfa yeni sınıflar entegre etmiş olacağız. sinif.php için önceki örneğimize dönelim:</p>
<p style="margin-bottom: 0cm;">class otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">public $marka;</p>
<p style="margin-bottom: 0cm;">public function __construct($marka_adi)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = $marka_adi;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">public function marka_tanimla($yeni_marka)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = $yeni_marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">public function marka_goster()</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">return $this-&gt;marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">// şimdi otomobil sınıfını genişletelim:</p>
<p style="margin-bottom: 0cm;">class ucuzOtomobil extends otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">//&#8230;ifadeler&#8230;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Böylelikle otomobil sınıfına bağımlı bir ucuzOtomobil sınıfı oluşturmuş olduk. ucuzOtomobil otomatik olarak otomobil sınıfının private harici tüm method ve özelliklerine sahip oldu. Genişletilmiş sınıflarda daha önce kullanılmış bir method ismini, işleyiş değiştirme amacınız yoksa kullanmayın.</p>
<p style="margin-bottom: 0cm;">Şimdi kodlarımızın son halini verelim:</p>
<p style="margin-bottom: 0cm;">index.php:</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">$otomobil = new otomobil(&#8216;Alfa Romeo&#8217;);</p>
<p style="margin-bottom: 0cm;">echo &#8220;Otomotiv: &#8221; . $otomobil-&gt;marka_goster();</p>
<p style="margin-bottom: 0cm;">echo &#8221;<br />
&#8220;;</p>
<p style="margin-bottom: 0cm;">$ucuzotomobil = new ucuzOtomobil(&#8216;Ford&#8217;);</p>
<p style="margin-bottom: 0cm;">echo &#8220;Ucuz otomotiv: &#8221; . $ucuzotomobil-&gt;marka_goster();</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Zend Debug Output:</p>
<p style="margin-bottom: 0cm;">Otomotiv: Alfa Romeo<br />
Ucuz otomotiv: Ford</p>
<p style="margin-bottom: 0cm;">Görüldüğü gibi ucuzOtomobil sınıfı içerisinde __construct() veya marka_goster() fonksiyonları olmadığı halde bunları otomobil sınıfından yararlanarak kullanabiliyor. Sıra geldi method işleyişlerini değiştirmeye&#8230;</p>
<p style="margin-bottom: 0cm;">Bazı durumlarda ana sınıftaki bir method&#8217;un işleyişini değiştirmeye ihtiyaç duyarsınız. Bunu yapmanın yolu, ana sınıftaki method adı ile genişleten sınıf içerisinde bir method açmaktır.</p>
<p style="margin-bottom: 0cm;">class otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">public $marka;</p>
<p style="margin-bottom: 0cm;">public function marka_tanimla($yeni_marka)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = $yeni_marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">public function marka_goster()</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">return $this-&gt;marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">class ucuzOtomobil extends otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">public function marka_tanimla($yeni_marka)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = trim(strtoupper($yeni_marka));</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Görüldüğü gibi marka_tanimla() adlı bir fonksiyonu genişleten fonksiyonumuza da eklemiş olduk.</p>
<p style="margin-bottom: 0cm;">Test edelim:</p>
<p style="margin-bottom: 0cm;">index.php:</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">$otomobil = new otomobil();</p>
<p style="margin-bottom: 0cm;">$otomobil -&gt; marka_tanimla(&#8216; alFa RoMeo &#8216;);</p>
<p style="margin-bottom: 0cm;">echo &#8220;Otomotiv: &#8221; . $otomobil-&gt;marka_goster();</p>
<p style="margin-bottom: 0cm;">echo &#8221;<br />
&#8220;;</p>
<p style="margin-bottom: 0cm;">$ucuzotomobil = new ucuzOtomobil();</p>
<p style="margin-bottom: 0cm;">$ucuzotomobil -&gt; marka_tanimla(&#8216; alFa RoMeo &#8216;);</p>
<p style="margin-bottom: 0cm;">echo &#8220;Ucuz otomotiv: &#8221; . $ucuzotomobil-&gt;marka_goster();</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Zend Debug Output:</p>
<p style="margin-bottom: 0cm;">Otomotiv: alFa RoMeo<br />
Ucuz otomotiv: ALFA ROMEO</p>
<p style="margin-bottom: 0cm;">Görüldüğü gibi genişleten fonksiyonuz ile trim ve strtoupper düzenlemeleri yapmış olduk. Şimdi sıra :: ifadesinde. İngilizce&#8217;de “Scope Resolution Operator” olarak tanımlanıyor. Türkçe&#8217;de genelde erim veya çözünürlük operatörü olarak kullanılıyor.  Ana sınıfımızdaki özellik ve methodlara erişim için kullanılan bir operatördür.</p>
<p style="margin-bottom: 0cm;">Örnekleyelim:</p>
<p style="margin-bottom: 0cm;">sinif.php:</p>
<p style="margin-bottom: 0cm;">class otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">static $fiyat=&#8221;60000&#8243;;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">class ucuzOtomobil extends otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">public function operator_ornegi()</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">return $this-&gt;fiyat = otomobil::$fiyat * 3;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">index.php:</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">$ucuzotomobil = new ucuzOtomobil();</p>
<p style="margin-bottom: 0cm;">echo &#8220;Yeni Fiyat: &#8221; . $ucuzotomobil-&gt;operator_ornegi();</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Çıktı: Yeni Fiyat: 180000</p>
<p style="margin-bottom: 0cm;">Görüldüğü gibi yeni bir kavramımız var  static. static ile tanımladığımız sınıf üyelerine örnekleme (instantiation) yapmadan ve :: aracılığıyla ulaşabiliriz. Örnekleme yaptığımız takdirde ise static üyelere ulaşamayacağız.</p>
<p style="margin-bottom: 0cm;">Şimdi birde fonksyion örneği yapalım:</p>
<p style="margin-bottom: 0cm;">sinif.php:</p>
<p style="margin-bottom: 0cm;">class otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">static $fiyat=&#8221;60000&#8243;;</p>
<p style="margin-bottom: 0cm;">public function dortKati()</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">return self::$fiyat * 4;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">class ucuzOtomobil extends otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">public function operator_ornegi()</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">return $this-&gt;fiyat = otomobil::dortKati();</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">index.php:</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">$ucuzotomobil = new ucuzOtomobil();</p>
<p style="margin-bottom: 0cm;">echo &#8220;Yeni Fiyat: &#8221; . $ucuzotomobil-&gt;operator_ornegi();</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Çıktı: Yeni Fiyat: 240000</p>
<p style="margin-bottom: 0cm;">Görüldüğü gibi self: ile mevcut sınıfın bir üyesini çağırabiliyoruz.</p>
<p style="margin-bottom: 0cm;">Altan Tanrıverdi</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu/feed" rel="nofollow" class="external" title="Bu makale için yorumlara üye ol.">Bu makale için yorumlara üye ol.</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu/&amp;t=PHP%27de+Nesne+Tabanl%C4%B1+Programlama%27ya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu" rel="nofollow" class="external" title="Bunu paylaş:Facebook">Bunu paylaş:Facebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=PHP%27de+Nesne+Tabanl%C4%B1+Programlama%27ya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu&amp;link=http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu/" rel="nofollow" class="external" title="Bunu paylaş:FriendFeed">Bunu paylaş:FriendFeed</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=PHP%27de+Nesne+Tabanl%C4%B1+Programlama%27ya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu&amp;body=Link: http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu/ (shareaholic aracılığıyla)%0D%0A%0D%0A----%0D%0A K%C4%B1lavuzu%20m%C3%BCmk%C3%BCn%20oldu%C4%9Funca%20k%C4%B1sa%20tutmak%20i%C3%A7in%20%C3%B6ns%C3%B6z%20bir%20sonraki%20c%C3%BCmle%20ile%20bitiyor.%20Bu%20konuyu%20anlamak%20i%C3%A7in%20PHP%27nin%20temel%20yap%C4%B1ta%C5%9Flar%C4%B1%20say%C4%B1lan%20fonksiyonlar%20ve%20de%C4%9Fi%C5%9Fkenler%20konusunda%20net%20bir%20bilgiye%20sahip%20olmal%C4%B1s%C4%B1n%C4%B1z.%0D%0AS%C4%B1n%C4%B1f%20yaratmak%20i%C3%A7in%20anahtar%20kelime%20class%27t%C4%B1r.%20sinif.php%20ad%C4%B1nda%20bi" rel="nofollow" class="external" title="Bunu e-postala:Gmail">Bunu e-postala:Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu/&amp;title=PHP%27de+Nesne+Tabanl%C4%B1+Programlama%27ya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu" rel="nofollow" class="external" title="Bunu ekle:Google Bookmarks">Bunu ekle:Google Bookmarks</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu/&amp;imageurl=" rel="nofollow" class="external" title="Google Buzz'da paylaş:">Google Buzz'da paylaş:</a>
		</li>
		<li class="shr-identica">
			<a href="http://identi.ca//index.php?action=newnotice&amp;status_textarea=Reading:+&quot;PHP%27de+Nesne+Tabanl%C4%B1+Programlama%27ya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu&quot;+-+from+http://tinyurl.com/ycovrqu" rel="nofollow" class="external" title="Bunu postala:Identica">Bunu postala:Identica</a>
		</li>
		<li class="shr-myspace">
			<a href="http://www.myspace.com/Modules/PostTo/Pages/?u=http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu/&amp;t=PHP%27de+Nesne+Tabanl%C4%B1+Programlama%27ya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu" rel="nofollow" class="external" title="Bunu postala:MySpace">Bunu postala:MySpace</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu/" rel="nofollow" class="external" title="Bunu paylaş:Technorati">Bunu paylaş:Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=PHP%27de+Nesne+Tabanl%C4%B1+Programlama%27ya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu+-+http://tinyurl.com/ycovrqu&amp;source=shareaholic" rel="nofollow" class="external" title="Bunu Tweet'le!">Bunu Tweet'le!</a>
		</li>
		<li class="shr-yahoomail">
			<a href="http://compose.mail.yahoo.com/?Subject=PHP%27de+Nesne+Tabanl%C4%B1+Programlama%27ya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu&amp;body=Link: http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu/ (shareaholic aracılığıyla)%0D%0A%0D%0A----%0D%0A K%C4%B1lavuzu%20m%C3%BCmk%C3%BCn%20oldu%C4%9Funca%20k%C4%B1sa%20tutmak%20i%C3%A7in%20%C3%B6ns%C3%B6z%20bir%20sonraki%20c%C3%BCmle%20ile%20bitiyor.%20Bu%20konuyu%20anlamak%20i%C3%A7in%20PHP%27nin%20temel%20yap%C4%B1ta%C5%9Flar%C4%B1%20say%C4%B1lan%20fonksiyonlar%20ve%20de%C4%9Fi%C5%9Fkenler%20konusunda%20net%20bir%20bilgiye%20sahip%20olmal%C4%B1s%C4%B1n%C4%B1z.%0D%0AS%C4%B1n%C4%B1f%20yaratmak%20i%C3%A7in%20anahtar%20kelime%20class%27t%C4%B1r.%20sinif.php%20ad%C4%B1nda%20bi" rel="nofollow" class="external" title="Bunu e-postala:Yahoo! Mail">Bunu e-postala:Yahoo! Mail</a>
		</li>
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu/&amp;n=PHP%27de+Nesne+Tabanl%C4%B1+Programlama%27ya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu&amp;pli=1" rel="nofollow" class="external" title="Bunu blogla:Blogger">Bunu blogla:Blogger</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22PHP%27de%20Nesne%20Tabanl%C4%B1%20Programlama%27ya%20H%C4%B1zl%C4%B1%20Giri%C5%9F%20K%C4%B1lavuzu%22&amp;body=Link: http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu/ (shareaholic aracılığıyla)%0D%0A%0D%0A----%0D%0A K%C4%B1lavuzu%20m%C3%BCmk%C3%BCn%20oldu%C4%9Funca%20k%C4%B1sa%20tutmak%20i%C3%A7in%20%C3%B6ns%C3%B6z%20bir%20sonraki%20c%C3%BCmle%20ile%20bitiyor.%20Bu%20konuyu%20anlamak%20i%C3%A7in%20PHP%27nin%20temel%20yap%C4%B1ta%C5%9Flar%C4%B1%20say%C4%B1lan%20fonksiyonlar%20ve%20de%C4%9Fi%C5%9Fkenler%20konusunda%20net%20bir%20bilgiye%20sahip%20olmal%C4%B1s%C4%B1n%C4%B1z.%0D%0AS%C4%B1n%C4%B1f%20yaratmak%20i%C3%A7in%20anahtar%20kelime%20class%27t%C4%B1r.%20sinif.php%20ad%C4%B1nda%20bi" rel="nofollow" class="external" title="Bunu bir arkadaşa e-postala">Bunu bir arkadaşa e-postala</a>
		</li>
		<li class="shr-ning">
			<a href="http://bookmarks.ning.com/addItem.php?url=http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu/&amp;T=PHP%27de+Nesne+Tabanl%C4%B1+Programlama%27ya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu" rel="nofollow" class="external" title="Bunu ekle:Ning">Bunu ekle:Ning</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu/&amp;title=PHP%27de+Nesne+Tabanl%C4%B1+Programlama%27ya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu" rel="nofollow" class="external" title="İyi bir şeye mi denk geldin? StumbleUpon üzerinde paylaş">İyi bir şeye mi denk geldin? StumbleUpon üzerinde paylaş</a>
		</li>
		<li class="shr-tumblr">
			<a href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.habertux.com%2Fyazilim%2Finternet%2Fphpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu%2F&amp;t=PHP%27de+Nesne+Tabanl%C4%B1+Programlama%27ya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu" rel="nofollow" class="external" title="Bunu paylaş:Tumblr">Bunu paylaş:Tumblr</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP&#039;de Nesne Tabanlı Programlama&#039;ya Hızlı Giriş Kılavuzu</title>
		<link>http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu-2/</link>
		<comments>http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu-2/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 17:28:53 +0000</pubDate>
		<dc:creator>Erdal Güçlü</dc:creator>
				<category><![CDATA[İnternet]]></category>
		<category><![CDATA[giriş]]></category>
		<category><![CDATA[Kılavuz]]></category>
		<category><![CDATA[nesne]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programla]]></category>
		<category><![CDATA[tabanlı]]></category>

		<guid isPermaLink="false">http://www.habertux.com/?p=106</guid>
		<description><![CDATA[Kılavuzu mümkün olduğunca kısa tutmak için önsöz bir sonraki cümle ile bitiyor. Bu konuyu anlamak için PHP&#8217;nin temel yapıtaşları sayılan fonksiyonlar ve değişkenler konusunda net bir bilgiye sahip olmalısınız. Sınıf yaratmak için anahtar kelime class&#8217;tır. sinif.php adında bir dosya yaratalım: class otomobil { } ?&#62; Böylece otomobil adında bir sınıf yarattık. Şimdi hemen data ekleyelim: [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://img22.imageshack.us/img22/1917/phpe.jpg" border="0" alt="Php" width="230" height="230" align="left" />Kılavuzu mümkün olduğunca kısa tutmak için önsöz bir sonraki cümle ile bitiyor. Bu konuyu anlamak için PHP&#8217;nin temel yapıtaşları sayılan fonksiyonlar ve değişkenler konusunda net bir bilgiye sahip olmalısınız.</p>
<p style="margin-bottom: 0cm;">Sınıf yaratmak için anahtar kelime class&#8217;tır. sinif.php adında bir dosya yaratalım:</p>
<p style="margin-bottom: 0cm;">class otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">Böylece otomobil adında bir sınıf yarattık. Şimdi hemen data ekleyelim:</p>
<p style="margin-bottom: 0cm;">class otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">var $marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Görüldüğü gibi şimdi de $marka adında bir değişken bilgisini sınıfımıza ekledik. Sırada fonksiyonlar var:</p>
<p style="margin-bottom: 0cm;">class otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">var $marka;</p>
<p style="margin-bottom: 0cm;">function marka_tanimla($yeni_marka)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = $yeni_marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">function marka_goster()</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">return $this-&gt;marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Görüldüğü gibi iki fonksiyon ekledik marka_tanimla() ve marka_goster(). Sanırım fonksiyonların görevlerini adlarından tahmin ediyoruz. Ama yeni bir kavram görüyoruz: $this-&gt;. $this-&gt; ifadesi geçerli nesneyi işaret eder. Diğer bir deyişle, $this-&gt; özel bir referans değişkenidir. $this-&gt; ifadesini bir değişkene erişirken ve mevcut sınıfın diğer fonksiyonlarına ulaşırken kullanırız.</p>
<p style="margin-bottom: 0cm;">Örneği açıklamak gerekirse; $this-&gt;marka = $yeni_marka; ile $marka adlı değişkenimize marka_tanimla() fonksiyonuna gelen $yeni_marka değerini atamış olduk.</p>
<p style="margin-bottom: 0cm;">return $this-&gt;marka; ile ise $marka değişkenini doğrudan return etmiş oluyoruz.</p>
<p style="margin-bottom: 0cm;">Buraya bir not düşerek devam edelim. Nesne tabanlı PHP için fonksiyonlara &#8220;method&#8221;, değişkenlerede &#8220;özellik&#8221; diyeceğiz.</p>
<p style="margin-bottom: 0cm;">Şimdi index.php dosyası yaratalım ve sinif.php&#8217;yi include edelim. Sınıflarla, normal PHP kodlarını aynı PHP dosyası içerisine yerleştirmeyin.</p>
<p style="margin-bottom: 0cm;">Not: Başka bir php dosyasını eklemenin iki yöntemi vardır. Aralarında ki fark ise hangisini kullanacağımızı belirler.</p>
<p style="margin-bottom: 0cm;">include ( ve include_once )</p>
<p style="margin-bottom: 0cm;">require ( ve require_once )</p>
<p style="margin-bottom: 0cm;">Include; dosyayı eklerken, dosya bulunamadığı taktirde sadece uyarı vererek ana kodumuzun çalışmasına kaldığı yerden devam etmesine izin verir. Require ise dosya bulunamadığında “fatal error” vererek kodu durdurmaktadır. Require genel olarak olmazsa olmaz dosyalar için kullanılır.</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Sıra geldi nesne tabanlı programlamanın temeli olan nesne&#8217;yi yaratmaya. Bu işleme örnekleme(instantiation) denir.</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">$ford = new otomobil();</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Burada $ford &#8220;özelliği&#8221; (değişkeni)&#8217;ni kulp olarak düşünün ve otomobil sınıfınıda çaydanlık. Kulptan tutarak çaydanlığı kontrol etmiş oluyoruz. Onu kaldırıyoruz, eğiyoruz vs. Kodu çalıştırdığınızda sonuç döndürmeyecektir çünkü PHP&#8217;ye hala yaratılan nesne ile ne yapması gerektiğini söylemedik. Buradaki &#8220;new&#8221; ifadesini sınıf dışından bir nesne yaratmak için kullanıyoruz.</p>
<p style="margin-bottom: 0cm;">Doğru kullanım şekilleri:</p>
<p style="margin-bottom: 0cm;">$ford = new otomobil();</p>
<p style="margin-bottom: 0cm;">$ford = new otomobil;</p>
<p style="margin-bottom: 0cm;">Yanlış kullanım şekli:</p>
<p style="margin-bottom: 0cm;">$ford = new &#8216;otomobil&#8217;;</p>
<p style="margin-bottom: 0cm;">Şimdi üç farklı otomobil markası yaratalım:</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">$ford =         new otomobil();</p>
<p style="margin-bottom: 0cm;">$fiat =         new otomobil();</p>
<p style="margin-bottom: 0cm;">$opel =         new otomobil();</p>
<p style="margin-bottom: 0cm;">$ford    -&gt;    marka_tanimla(&#8216;FORD&#8217;);</p>
<p style="margin-bottom: 0cm;">$fiat    -&gt;    marka_tanimla(&#8216;FIAT&#8217;);</p>
<p style="margin-bottom: 0cm;">$opel    -&gt;    marka_tanimla(&#8216;OPEL&#8217;);</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Markaları görüntüleyelim:</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">$ford =        new otomobil();</p>
<p style="margin-bottom: 0cm;">$fiat =        new otomobil();</p>
<p style="margin-bottom: 0cm;">$opel =        new otomobil();</p>
<p style="margin-bottom: 0cm;">$ford    -&gt;    marka_tanimla(&#8216;FORD&#8217;);</p>
<p style="margin-bottom: 0cm;">$fiat    -&gt;    marka_tanimla(&#8216;FIAT&#8217;);</p>
<p style="margin-bottom: 0cm;">$opel    -&gt;    marka_tanimla(&#8216;OPEL&#8217;);</p>
<p style="margin-bottom: 0cm;">echo $ford     -&gt;      marka_goster()     .  &#8221;<br />
&#8220;;</p>
<p style="margin-bottom: 0cm;">echo $fiat     -&gt;      marka_goster()     .  &#8221;<br />
&#8220;;</p>
<p style="margin-bottom: 0cm;">echo $opel     -&gt;      marka_goster()     .  &#8221;<br />
&#8220;;</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Nesne özelliklerine erişim için methodları kullanmak zorunda değilsiniz, doğrudan ­&gt; ve değişken ismi ile erişebilirsiniz. Örneğin: echo $fiat-&gt;marka; size FIAT sonucunu dönderecektir ancak bu kapsamlı projelerde karışıklıklara neden olabileceğinden iyi bir yazılım şekli sayılmaz ve methodlar kullanılarak bu işlemin yapılması daha düzgün bir yoldur.</p>
<p style="margin-bottom: 0cm;">Tüm nesneler &#8220;constructor” olarak ifadelendirilen özel bir methoda sahip olabilir. Bir __construct() fonksiyonu yaratırsanız sınıfınızdan nesne yarattığınız zaman bu method otomatik olarak çağrılacaktır.</p>
<p style="margin-bottom: 0cm;">class otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">var $marka;</p>
<p style="margin-bottom: 0cm;">function __construct($marka_adi)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = $marka_adi;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">function marka_tanimla($yeni_marka)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = $yeni_marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">function marka_goster()</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">return $this-&gt;marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">__construct() methodunu doğrudan çalıştırmak için</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">$jaguar = new otomobil(&#8216;JAGUAR&#8217;);</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Görüldüğü gibi nesnemizi yaratırken, marka_tanimla() methodunu kullanmadan otomobil markasını __construct() yardımı ile tanımlamış olduk. Kontrol için:</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">$jaguar = new otomobil(&#8216;JAGUAR&#8217;);</p>
<p style="margin-bottom: 0cm;">echo &#8220;En sevdiğim otomobil markası: &#8221; . $jaguar-&gt;marka_goster();</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Not: __construct() yerine sınıfımızın adını taşıyan bir fonksiyonda aynı işlevi görür.</p>
<p style="margin-bottom: 0cm;">Ör. :</p>
<p style="margin-bottom: 0cm;">class otomobil {</p>
<p style="margin-bottom: 0cm;">function otomobil($marka_adi)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = $marka_adi;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Not: __destruct() methodu ise sınıfımız yok edilmeden önce çalıştırılacak kodları içerir. Ayrıca diğer sihirli methodları (magic methods ) (__call, __callStatic, __get, __set, __isset, __unset , __sleep, __wakeup, __toString, __set_state ve __clone) sonraki kılavuz güncellemelerinde ayrıntılı olarak işleyeceğiz.</p>
<p style="margin-bottom: 0cm;">Zend Studio kullananlar, sinif.php içerisinde  var $marka; satırının uyarı verdiğini farkedeceklerdir. Uyarıda public/private/protected niteleyicilerini (modifiers) kullanmamız önerilmektedir. ZS&#8217;nin önerdiği bu kavramlar özelliklere erişimi kontrol eden, sınırlandıran tanımlamalardır. Bu tanımlamalar ile sınıfı kullanan kodların bilgiye erişimi denetlenir.</p>
<p style="margin-bottom: 0cm;">Bilgi güvenliği ve oluşabilecek hataların minimize edilmesi ana amaçtır. Bu niteleyeciler public, protected, private  (ayrıca static niteleyicisini birazdan inceleyeceğiz) olarak sıralanır. Bunlar arasında public varsayılan niteleyicidir, yani niteleyeci kullanmadığınız takdirde PHP bunu public olarak hesaba katacaktır. Örneğimiz üzerinden devam edelim:</p>
<p style="margin-bottom: 0cm;">class otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">var $marka;</p>
<p style="margin-bottom: 0cm;">public $model;</p>
<p style="margin-bottom: 0cm;">protected $fiyat;</p>
<p style="margin-bottom: 0cm;">private $satis_miktari;</p>
<p style="margin-bottom: 0cm;">function __construct($marka_adi)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = $marka_adi;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">function marka_tanimla($yeni_marka)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = $yeni_marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">function marka_goster()</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">return $this-&gt;marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">Görüldüğü gibi örneğimiz otomobil galerisi için yazılabilecek bir uygulamaya dönüşmeye başladı. Galeri sahibi için otomobilin çeşitli özelliklerini tutmak mümkün iken bunlar arasında değerine göre bilgiyi korumayı da sağlamış oluyor. Anlamayı kolaylaştırmak için kabaca örneklendirelim.</p>
<p style="margin-bottom: 0cm;">Alfa Romeo markasının Brera modelini 60000 YTL&#8217;ye satıyoruz ve bu yıl bunlardan 2 adet sattık. Brera modelini sattığımızın herkes tarafından bilinmesinin bir sakıncası yok, ancak fiyatını herkes bilsin istemeyiz, çünkü koşullara, faiz oranlarına, müşteriye göre fiyat değişiklik gösterebilir. Bu noktada onu protected olarak niteliyoruz. Peki kaç adet sattığımız? Bunu özellikle rakipler başta olmak üzere herkesten korumak için tamamen private olarak gizleyebiliriz.</p>
<p style="margin-bottom: 0cm;">Bir ek not ekleyelim; var $marka; satırı aslında PHP tarafından public $marka; olarak algılanmaktadır. var&#8217;ı public&#8217;e çevirip kaydettiğinizde ZS&#8217;nin uyarıyı kaldırdığını göreceksiniz. Bir özelliği private olarak tanımladığınızda bu özelliğe sadece mevcut sınıf içerisinden erişilebilir. protected olarak tanımladığınızda ise ancak mevcut sınıf ve onu genişleten sınıflardan erişilebilir. public&#8217;te ise bir erişim kısıtlaması yoktur. Konuyu daha iyi anlamak için özelliklere varsayılan değerler atayalım.</p>
<p style="margin-bottom: 0cm;">Örneğin:</p>
<p style="margin-bottom: 0cm;">class otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">public $marka = &#8220;Alfa Romeo&#8221;;</p>
<p style="margin-bottom: 0cm;">public $model = &#8220;Brera&#8221;;</p>
<p style="margin-bottom: 0cm;">protected $fiyat = &#8220;60000&#8243;;</p>
<p style="margin-bottom: 0cm;">private $satis_miktari = &#8220;2&#8243;;</p>
<p style="margin-bottom: 0cm;">function marka_tanimla($yeni_marka)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = $yeni_marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">function marka_goster()</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">return $this-&gt;marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Bu değerleri index.php ile almaya çalışalım:</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">$degeroku = new otomobil();</p>
<p style="margin-bottom: 0cm;">echo &#8220;Marka: &#8221; . $degeroku-&gt;marka;</p>
<p style="margin-bottom: 0cm;">echo &#8220;Model: &#8221; . $degeroku-&gt;model;</p>
<p style="margin-bottom: 0cm;">echo &#8220;Fiyat: &#8221; . $degeroku-&gt;fiyat;</p>
<p style="margin-bottom: 0cm;">echo &#8220;Satış Miktarı: &#8221; . $degeroku-&gt;satis_miktari;</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Bu kodu çalıştırdığınızda Zend kullananlar debug output&#8217;ta şöyle bir sonuç alacaklardır:</p>
<p style="margin-bottom: 0cm;">Marka: Alfa RomeoModel: Brera</p>
<p style="margin-bottom: 0cm;"><strong>Fatal error</strong>: Cannot access protected property otomobil::$fiyat in <strong>/home/altan/Zend/ workspaces/DefaultWorkspace/kilavuz/oop/index.php</strong> on line <strong>6</strong></p>
<p style="margin-bottom: 0cm;">Görüldüğü gibi Marka ve Model değerleri gelirken, sınıf dışından protected veya private bir özelliğin değerini alamıyoruz. Tüm bunlar methodlar (fonksiyonlar) için de geçerlidir. Şimdi genişletilmiş (extended) sınıflara gelelim.</p>
<p style="margin-bottom: 0cm;">Herhangi bir sınıfı extends ifadesiyle genişletebiliriz. Böylece sınıfa yeni sınıflar entegre etmiş olacağız. sinif.php için önceki örneğimize dönelim:</p>
<p style="margin-bottom: 0cm;">class otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">public $marka;</p>
<p style="margin-bottom: 0cm;">public function __construct($marka_adi)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = $marka_adi;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">public function marka_tanimla($yeni_marka)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = $yeni_marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">public function marka_goster()</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">return $this-&gt;marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">// şimdi otomobil sınıfını genişletelim:</p>
<p style="margin-bottom: 0cm;">class ucuzOtomobil extends otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">//&#8230;ifadeler&#8230;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Böylelikle otomobil sınıfına bağımlı bir ucuzOtomobil sınıfı oluşturmuş olduk. ucuzOtomobil otomatik olarak otomobil sınıfının private harici tüm method ve özelliklerine sahip oldu. Genişletilmiş sınıflarda daha önce kullanılmış bir method ismini, işleyiş değiştirme amacınız yoksa kullanmayın.</p>
<p style="margin-bottom: 0cm;">Şimdi kodlarımızın son halini verelim:</p>
<p style="margin-bottom: 0cm;">index.php:</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">$otomobil = new otomobil(&#8216;Alfa Romeo&#8217;);</p>
<p style="margin-bottom: 0cm;">echo &#8220;Otomotiv: &#8221; . $otomobil-&gt;marka_goster();</p>
<p style="margin-bottom: 0cm;">echo &#8221;<br />
&#8220;;</p>
<p style="margin-bottom: 0cm;">$ucuzotomobil = new ucuzOtomobil(&#8216;Ford&#8217;);</p>
<p style="margin-bottom: 0cm;">echo &#8220;Ucuz otomotiv: &#8221; . $ucuzotomobil-&gt;marka_goster();</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Zend Debug Output:</p>
<p style="margin-bottom: 0cm;">Otomotiv: Alfa Romeo<br />
Ucuz otomotiv: Ford</p>
<p style="margin-bottom: 0cm;">Görüldüğü gibi ucuzOtomobil sınıfı içerisinde __construct() veya marka_goster() fonksiyonları olmadığı halde bunları otomobil sınıfından yararlanarak kullanabiliyor. Sıra geldi method işleyişlerini değiştirmeye&#8230;</p>
<p style="margin-bottom: 0cm;">Bazı durumlarda ana sınıftaki bir method&#8217;un işleyişini değiştirmeye ihtiyaç duyarsınız. Bunu yapmanın yolu, ana sınıftaki method adı ile genişleten sınıf içerisinde bir method açmaktır.</p>
<p style="margin-bottom: 0cm;">class otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">public $marka;</p>
<p style="margin-bottom: 0cm;">public function marka_tanimla($yeni_marka)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = $yeni_marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">public function marka_goster()</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">return $this-&gt;marka;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">class ucuzOtomobil extends otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">public function marka_tanimla($yeni_marka)</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">$this-&gt;marka = trim(strtoupper($yeni_marka));</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Görüldüğü gibi marka_tanimla() adlı bir fonksiyonu genişleten fonksiyonumuza da eklemiş olduk.</p>
<p style="margin-bottom: 0cm;">Test edelim:</p>
<p style="margin-bottom: 0cm;">index.php:</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">$otomobil = new otomobil();</p>
<p style="margin-bottom: 0cm;">$otomobil -&gt; marka_tanimla(&#8216; alFa RoMeo &#8216;);</p>
<p style="margin-bottom: 0cm;">echo &#8220;Otomotiv: &#8221; . $otomobil-&gt;marka_goster();</p>
<p style="margin-bottom: 0cm;">echo &#8221;<br />
&#8220;;</p>
<p style="margin-bottom: 0cm;">$ucuzotomobil = new ucuzOtomobil();</p>
<p style="margin-bottom: 0cm;">$ucuzotomobil -&gt; marka_tanimla(&#8216; alFa RoMeo &#8216;);</p>
<p style="margin-bottom: 0cm;">echo &#8220;Ucuz otomotiv: &#8221; . $ucuzotomobil-&gt;marka_goster();</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Zend Debug Output:</p>
<p style="margin-bottom: 0cm;">Otomotiv: alFa RoMeo<br />
Ucuz otomotiv: ALFA ROMEO</p>
<p style="margin-bottom: 0cm;">Görüldüğü gibi genişleten fonksiyonuz ile trim ve strtoupper düzenlemeleri yapmış olduk. Şimdi sıra :: ifadesinde. İngilizce&#8217;de “Scope Resolution Operator” olarak tanımlanıyor. Türkçe&#8217;de genelde erim veya çözünürlük operatörü olarak kullanılıyor.  Ana sınıfımızdaki özellik ve methodlara erişim için kullanılan bir operatördür.</p>
<p style="margin-bottom: 0cm;">Örnekleyelim:</p>
<p style="margin-bottom: 0cm;">sinif.php:</p>
<p style="margin-bottom: 0cm;">class otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">static $fiyat=&#8221;60000&#8243;;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">class ucuzOtomobil extends otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">public function operator_ornegi()</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">return $this-&gt;fiyat = otomobil::$fiyat * 3;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">index.php:</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">$ucuzotomobil = new ucuzOtomobil();</p>
<p style="margin-bottom: 0cm;">echo &#8220;Yeni Fiyat: &#8221; . $ucuzotomobil-&gt;operator_ornegi();</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Çıktı: Yeni Fiyat: 180000</p>
<p style="margin-bottom: 0cm;">Görüldüğü gibi yeni bir kavramımız var  static. static ile tanımladığımız sınıf üyelerine örnekleme (instantiation) yapmadan ve :: aracılığıyla ulaşabiliriz. Örnekleme yaptığımız takdirde ise static üyelere ulaşamayacağız.</p>
<p style="margin-bottom: 0cm;">Şimdi birde fonksyion örneği yapalım:</p>
<p style="margin-bottom: 0cm;">sinif.php:</p>
<p style="margin-bottom: 0cm;">class otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">static $fiyat=&#8221;60000&#8243;;</p>
<p style="margin-bottom: 0cm;">public function dortKati()</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">return self::$fiyat * 4;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">class ucuzOtomobil extends otomobil</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">public function operator_ornegi()</p>
<p style="margin-bottom: 0cm;">{</p>
<p style="margin-bottom: 0cm;">return $this-&gt;fiyat = otomobil::dortKati();</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">index.php:</p>
<p style="margin-bottom: 0cm;">include &#8216;sinif.php&#8217;;</p>
<p style="margin-bottom: 0cm;">$ucuzotomobil = new ucuzOtomobil();</p>
<p style="margin-bottom: 0cm;">echo &#8220;Yeni Fiyat: &#8221; . $ucuzotomobil-&gt;operator_ornegi();</p>
<p style="margin-bottom: 0cm;">?&gt;</p>
<p style="margin-bottom: 0cm;">Çıktı: Yeni Fiyat: 240000</p>
<p style="margin-bottom: 0cm;">Görüldüğü gibi self: ile mevcut sınıfın bir üyesini çağırabiliyoruz.</p>
<p style="margin-bottom: 0cm;">Altan Tanrıverdi</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu-2/feed" rel="nofollow" class="external" title="Bu makale için yorumlara üye ol.">Bu makale için yorumlara üye ol.</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu-2/&amp;t=PHP%26%23039%3Bde+Nesne+Tabanl%C4%B1+Programlama%26%23039%3Bya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu" rel="nofollow" class="external" title="Bunu paylaş:Facebook">Bunu paylaş:Facebook</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=PHP%26%23039%3Bde+Nesne+Tabanl%C4%B1+Programlama%26%23039%3Bya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu&amp;link=http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu-2/" rel="nofollow" class="external" title="Bunu paylaş:FriendFeed">Bunu paylaş:FriendFeed</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=PHP%26%23039%3Bde+Nesne+Tabanl%C4%B1+Programlama%26%23039%3Bya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu&amp;body=Link: http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu-2/ (shareaholic aracılığıyla)%0D%0A%0D%0A----%0D%0A K%C4%B1lavuzu%20m%C3%BCmk%C3%BCn%20oldu%C4%9Funca%20k%C4%B1sa%20tutmak%20i%C3%A7in%20%C3%B6ns%C3%B6z%20bir%20sonraki%20c%C3%BCmle%20ile%20bitiyor.%20Bu%20konuyu%20anlamak%20i%C3%A7in%20PHP%27nin%20temel%20yap%C4%B1ta%C5%9Flar%C4%B1%20say%C4%B1lan%20fonksiyonlar%20ve%20de%C4%9Fi%C5%9Fkenler%20konusunda%20net%20bir%20bilgiye%20sahip%20olmal%C4%B1s%C4%B1n%C4%B1z.%0AS%C4%B1n%C4%B1f%20yaratmak%20i%C3%A7in%20anahtar%20kelime%20class%27t%C4%B1r.%20sinif.php%20ad%C4%B1nda%20bir" rel="nofollow" class="external" title="Bunu e-postala:Gmail">Bunu e-postala:Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu-2/&amp;title=PHP%26%23039%3Bde+Nesne+Tabanl%C4%B1+Programlama%26%23039%3Bya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu" rel="nofollow" class="external" title="Bunu ekle:Google Bookmarks">Bunu ekle:Google Bookmarks</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu-2/&amp;imageurl=" rel="nofollow" class="external" title="Google Buzz'da paylaş:">Google Buzz'da paylaş:</a>
		</li>
		<li class="shr-identica">
			<a href="http://identi.ca//index.php?action=newnotice&amp;status_textarea=Reading:+&quot;PHP%26%23039%3Bde+Nesne+Tabanl%C4%B1+Programlama%26%23039%3Bya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu&quot;+-+from+http://tinyurl.com/yd63mtd" rel="nofollow" class="external" title="Bunu postala:Identica">Bunu postala:Identica</a>
		</li>
		<li class="shr-myspace">
			<a href="http://www.myspace.com/Modules/PostTo/Pages/?u=http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu-2/&amp;t=PHP%26%23039%3Bde+Nesne+Tabanl%C4%B1+Programlama%26%23039%3Bya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu" rel="nofollow" class="external" title="Bunu postala:MySpace">Bunu postala:MySpace</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu-2/" rel="nofollow" class="external" title="Bunu paylaş:Technorati">Bunu paylaş:Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=PHP%26%23039%3Bde+Nesne+Tabanl%C4%B1+Programlama%26%23039%3Bya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu+-+http://tinyurl.com/yd63mtd&amp;source=shareaholic" rel="nofollow" class="external" title="Bunu Tweet'le!">Bunu Tweet'le!</a>
		</li>
		<li class="shr-yahoomail">
			<a href="http://compose.mail.yahoo.com/?Subject=PHP%26%23039%3Bde+Nesne+Tabanl%C4%B1+Programlama%26%23039%3Bya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu&amp;body=Link: http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu-2/ (shareaholic aracılığıyla)%0D%0A%0D%0A----%0D%0A K%C4%B1lavuzu%20m%C3%BCmk%C3%BCn%20oldu%C4%9Funca%20k%C4%B1sa%20tutmak%20i%C3%A7in%20%C3%B6ns%C3%B6z%20bir%20sonraki%20c%C3%BCmle%20ile%20bitiyor.%20Bu%20konuyu%20anlamak%20i%C3%A7in%20PHP%27nin%20temel%20yap%C4%B1ta%C5%9Flar%C4%B1%20say%C4%B1lan%20fonksiyonlar%20ve%20de%C4%9Fi%C5%9Fkenler%20konusunda%20net%20bir%20bilgiye%20sahip%20olmal%C4%B1s%C4%B1n%C4%B1z.%0AS%C4%B1n%C4%B1f%20yaratmak%20i%C3%A7in%20anahtar%20kelime%20class%27t%C4%B1r.%20sinif.php%20ad%C4%B1nda%20bir" rel="nofollow" class="external" title="Bunu e-postala:Yahoo! Mail">Bunu e-postala:Yahoo! Mail</a>
		</li>
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu-2/&amp;n=PHP%26%23039%3Bde+Nesne+Tabanl%C4%B1+Programlama%26%23039%3Bya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu&amp;pli=1" rel="nofollow" class="external" title="Bunu blogla:Blogger">Bunu blogla:Blogger</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22PHP%26%23039%3Bde%20Nesne%20Tabanl%C4%B1%20Programlama%26%23039%3Bya%20H%C4%B1zl%C4%B1%20Giri%C5%9F%20K%C4%B1lavuzu%22&amp;body=Link: http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu-2/ (shareaholic aracılığıyla)%0D%0A%0D%0A----%0D%0A K%C4%B1lavuzu%20m%C3%BCmk%C3%BCn%20oldu%C4%9Funca%20k%C4%B1sa%20tutmak%20i%C3%A7in%20%C3%B6ns%C3%B6z%20bir%20sonraki%20c%C3%BCmle%20ile%20bitiyor.%20Bu%20konuyu%20anlamak%20i%C3%A7in%20PHP%27nin%20temel%20yap%C4%B1ta%C5%9Flar%C4%B1%20say%C4%B1lan%20fonksiyonlar%20ve%20de%C4%9Fi%C5%9Fkenler%20konusunda%20net%20bir%20bilgiye%20sahip%20olmal%C4%B1s%C4%B1n%C4%B1z.%0AS%C4%B1n%C4%B1f%20yaratmak%20i%C3%A7in%20anahtar%20kelime%20class%27t%C4%B1r.%20sinif.php%20ad%C4%B1nda%20bir" rel="nofollow" class="external" title="Bunu bir arkadaşa e-postala">Bunu bir arkadaşa e-postala</a>
		</li>
		<li class="shr-ning">
			<a href="http://bookmarks.ning.com/addItem.php?url=http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu-2/&amp;T=PHP%26%23039%3Bde+Nesne+Tabanl%C4%B1+Programlama%26%23039%3Bya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu" rel="nofollow" class="external" title="Bunu ekle:Ning">Bunu ekle:Ning</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu-2/&amp;title=PHP%26%23039%3Bde+Nesne+Tabanl%C4%B1+Programlama%26%23039%3Bya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu" rel="nofollow" class="external" title="İyi bir şeye mi denk geldin? StumbleUpon üzerinde paylaş">İyi bir şeye mi denk geldin? StumbleUpon üzerinde paylaş</a>
		</li>
		<li class="shr-tumblr">
			<a href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.habertux.com%2Fyazilim%2Finternet%2Fphpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu-2%2F&amp;t=PHP%26%23039%3Bde+Nesne+Tabanl%C4%B1+Programlama%26%23039%3Bya+H%C4%B1zl%C4%B1+Giri%C5%9F+K%C4%B1lavuzu" rel="nofollow" class="external" title="Bunu paylaş:Tumblr">Bunu paylaş:Tumblr</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.habertux.com/yazilim/internet/phpde-nesne-tabanli-programlamaya-hizli-giris-kilavuzu-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
