Tolong, apakah mungkin membuat getter dan setter dengan cara JavaScript di php.ini? Sebagai contoh:

JavaScript

function test(){
 var clr = "";
 Object.defineProperty(this, "color", {
  set:function(val){
   val=="red"?clr=val:val="others";
  },
  get:function(){
   return clr;
  }
 });
}

Setelan sekarang

var testObj = new test();
testObj.color = "red";

Dan mendapatkan

var testObj = new test();
var color = testObj.color;

Alih-alih ini di php

$testObj = new test(); 
$testObj->setColor("color"); //Setter
$testObj->setColor(); //Getter

Tapi ini di php

$testObj = new test(); 
$testObj->setColor = "red";//Setter
$testObj->setColor;//Getter

Yang nilainya akan diproses sebelum ditugaskan. Saya juga ingin tahu nama cara JavaScript membuat getter dan setter. Terima kasih.

0
Starlyvil 20 September 2019, 06:23

1 menjawab

Jawaban Terbaik

Sudah lama tidak menggunakan PHP, jadi maafkan saya jika sintaksnya sedikit salah, tetapi Anda dapat menggunakan __set dan __get metode ajaib:

private $props = [];

public function __set($property, $value) {
    switch($property) {
        case 'color':
            $this->props['color'] = $value == 'red' ? $value : 'others';
        break;
    }
}
public function __get($property) {
    switch($property) {
        case 'color':
            return $this->props['color'];
        break;
    }
}
2
dave 20 September 2019, 03:34