Php SugarCRM:直接Bean属性访问与getFieldValue
在SugarCRM的现代版本中,将数据加载到bean对象之后Php SugarCRM:直接Bean属性访问与getFieldValue,php,orm,javabeans,sugarcrm,Php,Orm,Javabeans,Sugarcrm,在SugarCRM的现代版本中,将数据加载到bean对象之后 $account = BeanFactory::getBean('Accounts') ->retrieve_by_string_fields(array('name'=>'Q.R.&E. Corp')); 您可以通过直接访问属性来获取数据 $account->name 或者使用getFieldValue $account->getFieldValue('industry')
$account = BeanFactory::getBean('Accounts')
->retrieve_by_string_fields(array('name'=>'Q.R.&E. Corp'));
您可以通过直接访问属性来获取数据
$account->name
或者使用getFieldValue
$account->getFieldValue('industry')
是否存在
getFieldValue
存在的历史原因?是否有一种规范的方法来决定何时使用getFieldValue
与直接对象属性方法?我看到的唯一区别是,如果字段不存在,它不会抛出PHP错误,如果它是布尔值,它会将其转换为整数。请参阅函数定义
function getFieldValue($name)
{
if (!isset($this->$name)){
return FALSE;
}
if($this->$name === TRUE){
return 1;
}
if($this->$name === FALSE){
return 0;
}
return $this->$name;
}
我知道这很旧,但我想澄清一下,如果属性不存在,PHP不会抛出错误。直接访问属性和使用getFieldValue方法之间的唯一区别是,使用属性将接收NULL,使用getFieldValue方法将接收FALSE 以这个例子来证明PHP错误没有被抛出,可能是一个警告,但没有致命的错误
<?php
class TestClass {
public $one = 1;
}
$testClassInstance = new TestClass();
var_dump($testClassInstance->one); // Result = int(1)
var_dump($testClassInstance->two); // Result = NULL
啊,最重要的“不要抛出PHP错误”——这是有道理的。很好的澄清@tommymay——尽管用“抛出错误”来表示“引发错误”或“发生错误”是一种不幸的常见说法。为了保持日志和开发模式的干净,将警告视为错误也是很常见的(至少在PHPLAND中是这样),这意味着警告/错误最终归为同一类。