BHCoder adlı üyeden alıntı:
tam olarak ne yapmak istiyorsunuz.
Örnek vererek anlatmaya calisayim.

Nesnelerle programlama yapmasaydik, düz kod yazsaydik, yapmak istedigimiz islemler icin id gönderirdik. Örnegin:

echo '<a href="sitesil.php?linkId=1"> 1 Numaralari siteyi sil </a>';
echo '<a href="sitegetir.php?linkId=1"> 1 Numaralari siteyi getir </a>';
Nesnelerle calistigimiz zaman bilirsinizki, CRUD(Create, Read, Update, Delete) fonksiyonlarini kullaniriz. Yine nesnelerle calisan arkadaslar bilirlerki static olmayan bu fonksiyonlar sayesinde $nesne->delete(); dedigimiz zaman nesneyi veritabanindan silmis oluruz. Bu yüzden linksil.php dosyasina $nesne'nin ID'sini göndermek delete(); fonksiyonunu kullanmak icin mantiksiz olur. Nesnenin ID'sini gönderirsek nesneyi silmek icin iki yol izleyebiliriz. Ya getLinkById($id); seklinde static bir fonksiyon kullanarak önce nesneyi olustururuz ve olusturdugumuz nesneyi $nesne->delete(); seklinde sileriz yada yine static bir deleteById($id); fonksiyonu yazariz ve nesnemizi bu sekilde sileriz. Bu kadar aciklamanin ardindan ben soruma geleyim. Örnegin bi admin paneli yaziyorsunuz. siteYonetimi diye bir bölümünüz var. Siz bu siteYonetimi icinde site ekleyebiliyor(Create), site silebiliyor(Delete) ve siteleri güncelleyebiliyorsunuz(Update). Simdi örnek olarak sitesil.php'yi kullanmak istersek; ilk önce normal yolla nasil yapiliyor onu yazayim sonra benim nasil yapmak istedigimi anlatayim.

Nesne kullanmadan link silme islemi;
$sql = "SELECT id, link from linklist ORDER BY id ASC LIMIT 0 , 30";
$query = mysql_query($sql);
while($result = mysql_fetch_assoc($query)){
	echo '<a href="sitesil.php?id='.$result['id'].'">'.$result['link'].'</a><br />';
}
ve sitesil.php'de gerekli islemleri yaparak linkimizi siliyoruz.

Nesnelerle calisarak ise bunu ben asagidaki gibi yapmayi deniyorum.
Ilk önce nesneleri sayfalayan kodumu vereyim.
public static function getPage($page,$count) {
	$start = $page * $count;
	$sql = "SELECT id, link from linklist ORDER BY id ASC LIMIT :start , :count";
	$data = array('start' => $start, 'count' => $count);
	$rows = Db :: getResult($sql,$data);
	$results = array();
	foreach($rows as $row){
		$results[] = new Site($row);
	}
	return $results;
}
simdi ise nasil kullandigimi

	$sites = Site::getPage(0,30);
	foreach($sites as $site){
		echo '<a href="sitesil.php?site='.base64_encode(serialize($site)).'">'.$site->getLink().'</a>';
	}
Bu sekilde sitesil.php'ye silinecek olan sitenin id'sini degil silinecek olan siteyi nesne olarak gönderdik. sitesil.php'de ise
base64_encode(serialize($site))
isleminin tersini yaparak yani,
// nesnemizi geri olusturuyoruz
$site = unserialize(base64_decode($_REQUEST['site']));
// nesnemizi siliyoruz
$site->delete();
Bukadar aciklamadan sonra benim sorum ve sorunum, ilk olarak bu yöntem nekadar dogrudur. sdemirkeser'in verdigi linkteki gibi nesneleri session'dami saklamam gerekir? Nesneleri session'da tutarsam bunun dezavantajlari varmidir? Izleyebilecegimiz baska yollar nelerdir? Ikinci olarak yukaridaki anlattigim yöntemi kullanirken bazen
Fatal error: Call to a member function getLink() on a non-object in ...
hatasini aliyorum, bunun sebebi ne olabilir

Cycl0ne adlı üyeden alıntı: mesajı görüntüle
$objekt = unserialize(base64_decode($_POST['nesne']));
echo
$objekt->getLink();



Arkadasim objekt degiskeninde getLink fonksiyonu var mi ? Sinif kullanmayi bilmiyorsun yok öyle yapmadim yok böyle yapmadim ben dogru sen yanlis biliyorsun ne biçim tavirlar bunlar.
Ne tavir yapmasi anlamadim? Kod okumayi bilmiyormusun sen? Kafani yorma sinif kullanmayi bilmesem burada soru soramam. Kimin yanlis kimin dogru bildigini sorgulamiyorum burda. Nerede ne yaptigmi anlatiyorum. Birseyler ögrenmeye paylasmaya calisiyorum. Ilk mesajimda yazdigim kodu calistirmayi deneseydin calisma mantigini anlardin zaten.

Bunu daha önce okumustum hocam, post ve get ile nesne kullanmak yerine nesneleri session'da tutmak dahami dogrudur. Yukarida verdigim örnekte 30 tane nesneyi alt alta siraliyorsam, bunlarin hepsini session'a atmam ne kadar saglikli olur?