数组到字符串的转换问题


Array to String conversion troubles

所以我正在努力为我正在工作的项目编写这段代码。我不明白为什么我得到一个数组到字符串转换错误,因为我使用下面的Move_uploaded_file函数,因为我实现了一个foreach循环只与数组中的每个单独的元素工作。还请注意,根据php的错误处理,这个问题是与move_uploaded_file函数有关,而不是与被调用的其他方法有关。

下面是相关代码。(谢谢大家的帮助)。

public function relocate () {
    foreach ($this->getFilename() as $name) {
        $validate = $this->validatePhoto($name); 
        $size = $this->getSize($name); 
        if ($validate && $size) {
            if (move_uploaded_file($name, $this->filepath . $this->getFilename())) {
                echo "<p> upload complete </p>"; 
                //rename file, redirect header, etc. 
            } //end if move_uploaded_file
            else {
                echo "<p> something's up. </p>"; 
            }//end else 
        }//end if validate && size
    }//end foreach
}//end relocate method

你应该用$name代替$this->getFilename(), $this->getFilename()返回一个数组,如果我得到了正确的…

public function relocate () {
    foreach ($this->getFilename() as $name) {
        $validate = $this->validatePhoto($name); 
        $size = $this->getSize($name); 
        if ($validate && $size) {
            if (move_uploaded_file($name, $this->filepath . $name)) {
                echo "<p> upload complete </p>"; 
                //rename file, redirect header, etc. 
            } //end if move_uploaded_file
            else {
                echo "<p> something's up. </p>"; 
            }//end else 
        }//end if validate && size
    }//end foreach
}//end relocate method

应该是

public function relocate () {
    foreach ($this->getFilename() as $name) {
        $validate = $this->validatePhoto($name); 
        $size = $this->getSize($name); 
        if ($validate && $size) {
            if (move_uploaded_file($name, $this->filepath . $name)) {
                echo "<p> upload complete </p>"; 
                //rename file, redirect header, etc. 
            } //end if move_uploaded_file
            else {
                echo "<p> something's up. </p>"; 
            }//end else 
        }//end if validate && size
    }//end foreach
}//end relocate method

当你应该传递$name时,你将$this->getFileName()传递给move_uploaded_file(),因为你已经迭代了$this->getFileName()返回的数组