[ Text ]

PHP Deklarasi Property Secara Dinamis (Bagian 1)

Dalam membuat suatu Class di PHP alangkah baiknya (best practice) kalo kita mendeklarasikan variable atau property secara eksplisit, ataupun implisit. Karena jika tidak, saat mencoba mengakses propery yang tidak dideklarasi akan menghasilkan Notice.

  1. <?php 
  2. error_reporting(E_ALL); 
  3. ################ 
  4. class Semesta7 { 
  5.     public $goku, $vegeta, $gohan, $piccolo; // deklarasi 
  6. } 
  7. ################ 
  8. $semesta7 = new Semesta7; 
  9. var_dump($semesta7->goku); // NULL 
  10. var_dump($semesta7->frieza); // Notice: Undefined property: Semesta7::$frieza in ... 

Pada kode diatas, $goku memiliki nilai NULL karena hanya deklarasi tanpa memberikan nilai (assignment). Secara standar, PHP akan memberikan nilai NULL:

  1. public $goku = NULL, $vegeta = NULL, $gohan = NULL, $piccolo = NULL; 

Jika Class diatas kita ubah menjadi:

  1. ################ 
  2. class Semesta7 { 
  3.     public $goku, $vegeta, $gohan, $piccolo; // deklarasi 
  4.     public function __construct() { 
  5.         $this->frieza = NULL; // assignment 
  6.     } 
  7. } 
  8. ################ 

Notice tidak akan muncul lagi karena $frieza telah diberi nilai NULL yang berarti juga terdeklarasi secara implisit. FYI, Method __construct() akan menjalankan apapun didalam method tersebut atau dipanggil secara otomatis saat object dibuat dengan keyword "new".

Bersambung...