v2.5.2
Giriş yap

Veritabanından Gelen Değerleri Class içinde Basmak

yerdemli
693 defa görüntülendi

Merhaba Arkadaşlar,

Aşağıdaki şekilde statik bir bir class ile doğum günü gelen kişilerin bir listesini basıyorum.

    class Birthday {
    	private $birthDays;
    	public $today;
    	public $notifications;
    	public function __construct() {
    		global $DogumGunuListesi;
    		$this->today = new DateTime('today');
    		$this->birthDays = [
    		    //echo $DogumGunuListesi;
    			'Ali' => '17-09-1997',
    			'Veli' => '11-09-1993',
    			'Zeki' => '15-09-1991'
    		];
    		$this->notifications = [];
    		
    	}
    	public function birthReminder() {
    		foreach ($this->birthDays as $name => $birthDay) {
    			$birthDate = new DateTime($birthDay);
    			
    			if($this->compareDay($birthDate) && $this->compareMonth($birthDate)) {
    			
    				array_push($this->notifications, [
    					"age" => $birthDate->diff($this->today)->y,
    					"name" => $name,
    					"dob" => $birthDay
    				]);
    			} 
    		}
    	}
    	protected function compareDay($birthDate) {
    		return $birthDate->format('d') == $this->today->format('d');
    	}
    	protected function compareMonth($birthDate) {
    		return $birthDate->format('m') == $this->today->format('m');
    	}
    }
    
    $person = new Birthday();
    $person->birthReminder();

Aşağıdaki bilgileri mediumtext olarak veritabanında tutuyorum.

	'Ali' => '17-09-1997',
	'Veli' => '11-09-1993',
	'Zeki' => '15-09-1991'

Bununla birlikte veritabanından çekip class'a basarak kullanamıyorum.
Veritabanından çektiğim ve $DogumGunuListesi değişkenine eşitlediğim bilgileri basmak için global $DogumGunuListesi; tanımı yaptım, olmadı.
Sorguyu class'ın içinde yaptım yine olmadı.

Nerede hata yaptığımı bir türlü bulamadım. Yardımcı olabilirseniz memnun olurum.

Şimdilik manuel olarak listeyi koda yapıştırarak çalıştırabiliyorum.

Teşekkürler.

makifgokce
1536 gün önce

print_r fonsiyonu ekrana yazdırmak için kullanılır.
aşağıda 2 örnek var.İster global olarak tanımla istersende parametre olarak.

$DogumGunuListesi = [
	'Ali' => '17-09-1997',
	'Veli' => '11-09-1993',
	'Zeki' => '15-09-1991'
];
class Birthday{
	private $birthDays = [];
	public function __construct() {
		global $DogumGunuListesi;
		$this->birthDays = $DogumGunuListesi;
	}
}
$birth = new Birthday;
var_dump($birth);
// veya
class Birthday{
	private $birthDays = [];
	public function __construct($DogumGunuListesi) {
		$this->birthDays = $DogumGunuListesi;
	}
}

$birth = new Birthday($DogumGunuListesi);
var_dump($birth);