检查变量是否已在PHP

时间:2015-08-01 12:57:02

标签: php variable-declaration

我一直在实施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;
            }
        }
    }
}

我这样做的主要原因是为了让我的代码在将来可扩展。例如,我可能不会使用某些字段数据库,但将来我可能需要它们。

非常感谢

你们其中一人

2 个答案:

答案 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

}