2015-08-01 2 views
0

Я использую плагин wordpress, и я столкнулся с проблемой с выяснением, была ли объявлена ​​переменная.Проверьте, была ли инициализирована переменная в PHP

скажем, у меня есть модель под названием «Hello». Эта модель имеет две переменные: «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; 
      } 
     } 
    } 
} 

Основная причина, почему я делаю это, чтобы сделать мой код расширения в будущем. например, я не могу использовать некоторые поля из базы данных, но в будущем, возможно, они мне понадобятся.

Большое спасибо

Один из вас

+1

разве Исеть (работает)? – Sayed

ответ

2

вы можете использовать несколько вариантов

//this will return true if $someVarName exists and it's not null 
if(isset($this->{$someVarName})){ 
//do your stuff 
} 

вы также можете проверить, если property exists и если он не добавляет его в класс.

property_exists возвращает истину, даже если значение равно нулю

if(!property_exists($this,"myVar")){ 
    $this->{"myVar"} = " data.." 
} 
+0

спасибо, property_exists ($ key, $ value) выработано как шарм. –

Смежные вопросы