php中访问器方法的命名约定

php中访问器方法的命名约定,php,naming-conventions,Php,Naming Conventions,我正在为其中一个系统准备API方法。Api将为几种语言提供,但将为php发布第一个版本。我想知道访问器方法应该使用什么命名约定。我希望每种语言的api接口都非常相似甚至相等。我在阅读一些php库时注意到两个命名转换: 1) 作为set*()和get*()方法的公共访问器 2) 退出设置/获取前缀 class MyClass { private $data; public function data($value = null) { if (!empty($value) &a

我正在为其中一个系统准备API方法。Api将为几种语言提供,但将为php发布第一个版本。我想知道访问器方法应该使用什么命名约定。我希望每种语言的api接口都非常相似甚至相等。我在阅读一些php库时注意到两个命名转换:

1) 作为set*()和get*()方法的公共访问器

2) 退出设置/获取前缀

class MyClass { 
  private $data; 
  public function data($value = null) { 
    if (!empty($value) && is_array($value)) {
        $data = $value;
    }
    return $data;
  }
}
我不是php程序员,我有java和c/c++方面的经验,所以我想问一下关于php的建议?尤其是对于php程序员来说更可读、更清晰、更容易理解的内容

我想阅读评论和建议

祝你一切顺利


注:如果主题重复,我很抱歉,请您给我指出原始主题。

我几乎从未看到您的第二个提案被使用过。
但是我经常看到第一个


所以,在这种情况下,我会选择第一个方案。

我几乎从来没有看到你的第二个方案被使用过。
但是我经常看到第一个


所以,在这种情况下,我会选择第一个。

尝试将此作为起点。您需要做更多的工作,但这应该会给您一个想法,如果这是一个选项,如何使用uuu get和uu set

class MyClass {

  protected $data = array();
  protected $acceptedKeys = array('name', 'job', 'sport');

  public function __get($key) {
    if(isset($key) &&  array_key_exists($key, $this->data)) {
      return $this->data[$key];
    } else {
      throw new Exception("can not find {$key}");
    }
  }

  public function __set($key,$val) {
    if(in_array($key, $this->acceptedKeys)) {
      $this->data[$key] = $val;
    } else {
      throw new Exception('we will need a key value pair');
    }
  }
}

try {
  $myClass = new MyClass();
  $myClass->job = 'sports';
  $myClass->name = 'test';
  print $myClass->job . "\n";
  print $myClass->name;
} catch(Exception $e) {
  print "error : " . $e->getMessage();
}

尝试将此作为起点。您需要做更多的工作,但这应该会给您一个想法,如果这是一个选项,如何使用uuu get和uu set

class MyClass {

  protected $data = array();
  protected $acceptedKeys = array('name', 'job', 'sport');

  public function __get($key) {
    if(isset($key) &&  array_key_exists($key, $this->data)) {
      return $this->data[$key];
    } else {
      throw new Exception("can not find {$key}");
    }
  }

  public function __set($key,$val) {
    if(in_array($key, $this->acceptedKeys)) {
      $this->data[$key] = $val;
    } else {
      throw new Exception('we will need a key value pair');
    }
  }
}

try {
  $myClass = new MyClass();
  $myClass->job = 'sports';
  $myClass->name = 'test';
  print $myClass->job . "\n";
  print $myClass->name;
} catch(Exception $e) {
  print "error : " . $e->getMessage();
}

+简洁是智慧的灵魂。+1简洁是智慧的灵魂。代码nr2会发生什么?如果PHP5.3是一个选项,您可以使用_set和_get magic函数。您的第二种方法没有做任何事情,但它会返回您发送给它的值,如果该值是数组失败,它将返回NULL。在代码nr2中会发生什么?如果PHP5.3是一个选项,您可以使用_set和_get magic函数。您的第二种方法没有做任何事情,但它会返回您发送给它的值,如果该值是数组失败,它将返回NULL。您为什么这样做,php?!编写这么多简单访问器的代码证明了实用语言设计的无能。PHP,你为什么这样对我们?!如此多的代码用来编写简单的访问器,这证明了实用语言设计的无能。