php中访问器方法的命名约定
我正在为其中一个系统准备API方法。Api将为几种语言提供,但将为php发布第一个版本。我想知道访问器方法应该使用什么命名约定。我希望每种语言的api接口都非常相似甚至相等。我在阅读一些php库时注意到两个命名转换: 1) 作为set*()和get*()方法的公共访问器 2) 退出设置/获取前缀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
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,你为什么这样对我们?!如此多的代码用来编写简单的访问器,这证明了实用语言设计的无能。