验证时类构造函数错误

时间:2013-04-27 11:33:12

标签: php php-5.3

我正在开发一个文件上传类,并尝试在其他代码之前执行少量验证,但是它返回所有变量而不是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

请帮忙解决这个问题。感谢。

1 个答案:

答案 0 :(得分:0)

您可能会考虑在构造函数中使用异常,因为构造函数不应返回任何内容。 (看看这个question) 否则,您可以创建一个函数来检查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!';
}