Can PHP kodu aşağıdaki gibi mağaza nesne durumu?

2 Cevap php

PHP bir acemi yaşıyorum ve ben bir nesnenin içindeki tüm veriler için bir kez başlatmak ve daha sonra bunları kullanabilirsiniz wether Soruyorum

<?
class Person(){

   private $data;//private or public
   function Person($data){
       $this->data['name'] = $data['name'];
       ....

   }

   function save(){
      $this->dbconn.executeQuery('insert into ... values('$this->data['name']',...));
      //some object to connect and execute query on a database.
   }

}
?>

$me = new Person(array(['name']=>'my fname my lname',...));
  $me->save();

//print_r($me) shows that $data has no initialized values

Nasıl bu sorunu çözebilir. Eğer aynı sorun sorulan bir bağlantı biliyor kopyalayıp buraya yapıştırın lütfen. teşekkür ederim.

2 Cevap

İki şey. Ben yanlış veri geçirerek, yanı sıra sınıf yanlış ayar düşünüyorum:

<?php
class Person {
    function __construct($data){
        $this->data = array();
        $this->data['name'] = $data['name'];
    }

    function save(){
        // Do something here.
    }
}

$info = array();
$info['name'] = "Joe Blogs";

$someone = new Person($info);
print_r($someone);
?>

Benim için, bu bilgiyi gerektiği gibi yazdırır.

Eğer serialize kullanın ve sonra istediğiniz nesneyi saklayabilirsiniz. Eğer bu nesne için bağlantı kalıcı değildir beri nesneyi unserialize sonra db bağlantısı kullanmayı deneyin ama eğer bu durumda özellikle muhtemelen sorun yaşayabilirsiniz.

Öte yandan, size nesneyi nesneleştirmek çalıştığınızda php alışkanlık tefrika yaşadığınız sınıf biliyorum çünkü bir hata alırsınız değilse her sınıf tanımı yüklemiş unutmayın