0

我正在开发一个文件上传类,并尝试在其他代码之前执行一些验证,但它返回所有 vars 而不是 false,请检查以下代码....

class FileUploader
{

   private $filePath;

   function __construct($file_path) {

      if(file_exists($file_path)) {

           $this->filePath = $file_path;

      }

     else return false;

   }

}

当我像下面这样使用这个类时......

$file_path = getcwd().'\img.pn'; //invalid path

$file_uploader = new FileUploader($file_path);

if($file_uploader) {
    //process
}
else {
    echo 'Invalid File Path!';
}

但它没有Invalid File Path按预期回显,当我尝试时var_dump,它返回以下输出......

  object(FileUploader)[1]
  private 'filePath' => null

请帮助解决这个问题。谢谢。

4

1 回答 1

0

您可能会考虑在构造函数中使用异常,因为构造函数不应返回任何内容。(看看这个问题)。
否则,您可以创建一个函数来检查 file_path :

class FileUploader
{

   private $filePath;

   function __construct($file_path) {
      $this->filePath = $file_path;
   }



   function isValidFilePath() {
      return file_exists($this->file_path);
   }

}

接着 :

$file_path = getcwd().'\img.pn'; //invalid path

$file_uploader = new FileUploader($file_path);

if($file_uploader->isValidFilePath()) {
    //process
}
else {
    echo 'Invalid File Path!';
}
于 2013-04-27T12:11:18.693 回答