生成一串文件名,替代全局变量?

时间:2015-03-21 01:17:05

标签: php

我正在创建一个用户可以上传多个图像并将其上传到服务器的功能。使用全局变量可以解决这个问题,但是我听说全局变量很糟糕,特别是在OOP中。所以,我想知道什么是好的选择? (我是一名初学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;
    }

}

1 个答案:

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