Php 生成一个文件名字符串,作为全局变量的替代?

Php 生成一个文件名字符串,作为全局变量的替代?,php,Php,我正在创建一个功能,用户可以上传多个图像并上传到服务器。在这个问题上使用全局变量是可行的,但我听说全局变量很糟糕,尤其是在OOP中。所以,我想知道一个好的选择是什么?(我是一名初级PHP程序员,欢迎提供详细信息) 代码: 函数addImgToNieuws($images){ 如果(设置($images)&&$images!=“”){ $countFiles=count($images[“name”]); 对于($i=0;$idb->real\u escape\u字符串($db\u file\u

我正在创建一个功能,用户可以上传多个图像并上传到服务器。在这个问题上使用全局变量是可行的,但我听说全局变量很糟糕,尤其是在OOP中。所以,我想知道一个好的选择是什么?(我是一名初级PHP程序员,欢迎提供详细信息)

代码:

函数addImgToNieuws($images){
如果(设置($images)&&$images!=“”){
$countFiles=count($images[“name”]);
对于($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\u escape\u字符串($db\u file\u name);
全局$字符串;
$string.=“,$output”;
$string=substr($string,1);
}
echo$字符串;
}
}

使用
返回$string代替echo不需要全局设置。此外,文件名数组可能是eiser的工作对象-取决于您计划如何使用$STRING如果我尝试这样做,它会告诉我字符串未定义或字符串没有值。请查看下面的代码答案,这是因为第一次使用
$string
时,由于
$string
未定义,因此会附加
=/code>,因此会出现该错误。在函数顶部定义
$string=”“
。此外,此函数的返回值应该是数组,而不是字符串,因为您的输入也是数组。
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;
    }

}
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;

}
echo join(",", $obj->addImgToNieuws($images));