2015-10-29 7 views
0

Может ли кто-нибудь сказать мне, почему $Role игнорируется?php передача аргументов в конструкторе

Я пытаюсь передать аргумент, и он всегда получает значение null, однако, когда я вызываю метод var_dump показывает, что $Role равно 2.

Когда я использую var_dump внутри getListFromDB$Role является задано значение null.

Метод getListFromDB()

function getListFromDB($tableName, $orderBy = 'Description', $where = null, $Role = null) { 
    DO_Common::debugLevel(0); 
    if (empty($tableName) || empty($orderBy)) 
     throw new Exception("tableName and orderBy cannot be left empty"); 

    var_dump($Role); 

    if (!empty($Role)) 
    { 
     echo "here"; 
     if ($Role === 2) 
     { 
      if ($tableName == 'AssetTypes') 
      { 
      $params = array('tableName' => 'AssetTypes', 
          'orderBy' => $orderBy, 
          'whereAdd' => 'Restricted = 1'); 
      } 

      var_dump($params); 

     } 
     else 
     { 
      $params = array('tableName' => $tableName, 
        'orderBy' => $orderBy);   
      var_dump($params); 
     }   
    } 
    else 
    { 
     $params = array('tableName' => $tableName, 
        'orderBy' => $orderBy); 
     //var_dump($params); 
    } 

    if (!empty($where) && $table != 'AssetTypes') { 
     if (strpos(strtolower($where), 'flag') === false) 
      $where .= " AND Flag != " . fDELETED; 

     $params += array('whereAdd' => $where); 
    } 

    return DO_Common::toAssocArray($params); 
} 

Как метод вызывается:

$AssetTypesOptions = getListFromDB('AssetTypes', $Role); 

Есть ли что-то я здесь отсутствует?

ответ

1

$Role четвертый аргумент функции, но вы отправляете его в качестве второй аргумент:

$AssetTypesOptions = getListFromDB('AssetTypes', 'Description', null, $Role); 
+0

Ничего себе! Полностью пропустил это! Благодаря! – Brian

1

Вы должны назвать его в качестве четвертого аргумента, например так:

getListFromDB("tablename", "some fancy description", "here", $Role); 

Я сделал их, очевидно, ...

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