javascript - 如何以 javascript 方式创建 php getter 和 setter

标签 javascript php

请问是否可以在 php 中以 JavaScript 方式创建 getter 和 setter。例如:

JavaScript

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

现在设置

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

并且得到

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

用 php 代替这个

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

但是这是在 php 中

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

在分配之前将处理该值。我还想知道创建 getter 和 setter 的 JavaScript 方式的名称。谢谢。

最佳答案

有一段时间没有使用 PHP,所以如果语法稍有偏差,请原谅我,但您可以使用 __set__get magic methods :

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;
    }
}

关于javascript - 如何以 javascript 方式创建 php getter 和 setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58021379/

相关文章:

javascript - 在 Angular ui-router 中实现中间件

php - _GET 中 URL 参数的最大大小

php - 使用 withCount 和 get([name as value]) 的 Laravel Eloquent 查询

php - 在 Dreamweaver 表单中使用多个复选框

PHP foreach 数组 - 保留键

javascript - 使用 jquery 更改异步操作中的文本值

javascript - Electron : can not find module jQuery

javascript - 使用 OLE 自动化访问 Javascript 变量

javascript - php 文件没有通过 javascript 重定向

php - 200k 页面网站的网站搜索