2015-03-21 2 views
0

Я создаю функцию, в которой пользователи могут загружать несколько изображений и загружать их на сервер. Использование глобальной переменной для этого вопроса работает, но я слышал, что глобальные переменные являются плохими, особенно в ООП. Итак, мне интересно, какая хорошая альтернатива? (Я стартовое PHP программист, любая подробная информация ценится)Создание строки имен файлов, альтернативных глобальной переменной?

Код:

function addImgToNieuws($images){ 

    if (isset($images) && $images != "") { 
     $countFiles = count($images["name"]); 

     for ($i = 0; $i < $countFiles; $i++) { 
      $fileName = $images["name"][$i]; 
      $fileType = $images["type"][$i]; 
      $fileSize = $images["size"][$i]; 
      $fileError = $images["error"][$i]; 
      $fileTmp = $images["tmp_name"][$i]; 

      $kaboom = explode(".", $fileName); 
      $fileExt = end($kaboom); 

      $db_file_name = rand(100000, 999999) . "." . $fileExt; 
      $output = $this->db->real_escape_string($db_file_name); 

      global $string; 
      $string .= ",$output"; 
      $string = substr($string, 1); 
     } 

     echo $string; 
    } 

} 
+0

вместо эха, используйте 'возврат $ строку,' не глобальный будут им необходимы. также массив имен файлов, вероятно, будет работать с eiser - зависит от того, что вы планируете делать с $ string –

+0

Если я попробую это, он либо скажет мне, что строка не определена, либо строка не имеет значения. –

+0

посмотрите на код ответа ниже –

ответ

0
function addImgToNieuws($images){ 

    if (isset($images) && $images != "") { 
     throw new Exception("bad input bro"); 
    } 
    $countFiles = count($images["name"]); 

    $db_names = array(); 

    for ($i = 0; $i < $countFiles; $i++) { 
     $fileName = $images["name"][$i]; 
     $fileType = $images["type"][$i]; 
     $fileSize = $images["size"][$i]; 
     $fileError = $images["error"][$i]; 
     $fileTmp = $images["tmp_name"][$i]; 

     $kaboom = explode(".", $fileName); 
     $fileExt = end($kaboom); 

     $db_file_name = rand(100000, 999999) . "." . $fileExt; 
     $db_names[] = $this->db->real_escape_string($db_file_name) 
    } 

    return $db_names; 

} 

Предполагая, что вы хотели получить $db_names. Это немного странно, чтобы выполнить эвакуацию здесь, я бы отложил ее до самого момента, когда вы вставляете ее в запрос.

Если вы действительно хотели $db_names как строка, которую вы можете сделать:

echo join(",", $obj->addImgToNieuws($images)); 
Смежные вопросы