Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP foreach在第一次迭代后停止_Php_File_Foreach - Fatal编程技术网

PHP foreach在第一次迭代后停止

PHP foreach在第一次迭代后停止,php,file,foreach,Php,File,Foreach,我有一个表格,其中有三个文件输入。使用下面的代码,我尝试使用一些随机散列和文件名将文件从TMP本地化移动到./uploads 我对foreach有问题,因为在第一次迭代并将文件保存到uploads目录后,它正在停止。我不知道为什么表中的其他两个元素不会发生这种情况。下面是整个函数,有点乱,但我希望可以理解 function saveFile(){ global $patchFile; $fileArray = [ $_FILES['file_one']['name'], $_FILES['f

我有一个表格,其中有三个文件输入。使用下面的代码,我尝试使用一些随机散列和文件名将文件从TMP本地化移动到./uploads

我对
foreach
有问题,因为在第一次迭代并将文件保存到uploads目录后,它正在停止。我不知道为什么表中的其他两个元素不会发生这种情况。下面是整个函数,有点乱,但我希望可以理解

function saveFile(){
global $patchFile;


$fileArray = [ $_FILES['file_one']['name'], $_FILES['file_two']['name'], $_FILES['file_three']['name'] ];
$tmpArray = [ $_FILES['file_one']['tmp_name'], $_FILES['file_two']['tmp_name'], $_FILES['file_three']['tmp_name'] ];

$multiArray = 
[
    [$_FILES['file_one']['name'], $_FILES['file_one']['tmp_name']],
    [$_FILES['file_two']['name'], $_FILES['file_two']['tmp_name']],
    [$_FILES['file_three']['name'], $_FILES['file_three']['tmp_name']]
];

foreach ($multiArray as $key) 
{
    echo "<br />Key: ".$key[0]."\n";
    echo "Key_tmp: ".$key[1]."\n";


    $randomString = generateRandomString();
    $patchFile = './uploads/'.$randomString.$key[0];

    echo "<br />Check patchFile: $patchFile";

    if(is_uploaded_file($key[1]))
    {
        echo "<br />Begin uploading to directory...<br />";
        if(!move_uploaded_file($key[1], $patchFile))
        {
          echo 'Problem: Nie udało się skopiować pliku do katalogu.';
            return false;  
        }
        else {
            echo "File was saved in uploads directory";
            return true;
        }   
    }
    else 
    {
        echo "Uploading to directory... FAILED!";
    }
}
}
函数saveFile(){
全局$patchFile;
$fileArray=[$\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
$tmpArray=[$\u FILES['file\u one']['tmp\u name'],$\u FILES['file\u two']['tmp\u name'],$\u FILES['file\u three']['tmp\u name'];
$multiArray=
[
[$\u文件['file\u one']['name'],$\u文件['file\u one']['tmp\u name'],
[$\u文件['file\u two']['name'],$\u文件['file\u two']['tmp\u name'],
[$\u文件['file\u three']['name'],$\u文件['file\u three']['tmp\u name']]
];
foreach($multiArray作为$key)
{
回显“
键:.$Key[0]。”\n”; 回显“Key\u tmp:.$Key[1]。\n”; $randomString=generateRandomString(); $patchFile='./上载/'.$randomString.$key[0]; echo“
检查修补文件:$patchFile”; 如果(是否上载了文件($key[1])) { echo“
开始上传到目录…
”; 如果(!移动上传的文件($key[1],$patchFile)) { echo“问题:Nie udało sięskopiowaćpliku do katalogu”; 返回false; } 否则{ echo“文件保存在上传目录中”; 返回true; } } 其他的 { echo“上载到目录…失败!”; } } }
当你
从循环中返回某个东西时,循环总是被破坏的

根据:

如果从函数中调用,
return
语句立即结束当前函数的执行,并将其参数作为函数调用的值返回


当您
从循环中返回某个内容时,循环总是中断的。您应该根据此注释作出回答;)非常感谢。