我正在开发一个文件上传类,并尝试在其他代码之前执行少量验证,但是它返回所有变量而不是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
请帮忙解决这个问题。感谢。
答案 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!';
}