我一直在实施wordpress插件,我遇到了一个问题,发现变量已声明或未声明。
让我们说我有一个名为“你好”的模特。 这个模型有两个变量' hello_id'和' hello_name'。 现在让我们假设在数据库中我们有一个名为' hello'有3列作为' hello_id',' hello_name' ,' hello_status'。现在我想检查变量是否已声明,如果是,则设置值。
代码
class Hello extends MasterModel{
public $hello_id;
public $hello_name;
function __construct($hello_id = null)
{
if ($hello_id != null){
$this->hello_id = $hello_id;
$result = $wpdb->get_row(
"SELECT * FROM hello WHERE hello_id = $hello_id"
, ARRAY_A);
$this->setModelData($data);
}
}
}
abstract class MasterModel {
protected function setModelData($data)
{
foreach($data as $key=>$value){
if(isset($this->{$key})){ // need to check if such class variable declared
$this->{$key} = $value;
}
}
}
}
我这样做的主要原因是为了让我的代码在将来可扩展。例如,我可能不会使用某些字段数据库,但将来我可能需要它们。
非常感谢
你们其中一人
答案 0 :(得分:2)
您可以使用多个选项
//this will return true if $someVarName exists and it's not null
if(isset($this->{$someVarName})){
//do your stuff
}
您还可以查看是否property exists以及是否将其添加到课程中。
即使value为null,property_exists也会返回true
if(!property_exists($this,"myVar")){
$this->{"myVar"} = " data.."
}
答案 1 :(得分:0)
使用isset http://php.net/manual/en/function.isset.php
if(isset($var)){
//do stuff
}