1
这是我正在学习的课程。使用表单上传文件后,员额的PHP文件,其中包含这个类:这些类属性是多余的吗?
class Parse
{
public $file;
public function __construct()
{
echo 'The class was initiated!<br />';
}
public function setFile($file)
{
if (sizeof($file) == 1)
{
$this->file = $file;
}
}
public function getFileName()
{
return $this->file['uploadedfile']['name'];
}
public function getFileTempName()
{
return $this->file['uploadedfile']['tmp_name'];
}
public function getFileSize()
{
return $this->file['uploadedfile']['size'];
}
}
我应该直接引用$ obj->文件[“UploadedFile的”] [“财产”]就像我如何创造的Getters,还是应该创建一堆公共类属性,如public $filename
,并将$ _FILES变量中的值存储到单独的类属性中?
哪个是最佳做法?
使用答案EDITED
此代码的工作完美:
<?php
class Parser
{
public $file;
public function __construct()
{
echo 'The class was initiated!<br />';
}
public function setFile($file)
{
if ($_POST) {
if ($file['uploadedfile']['size'] > 0) {
$this->file = $file;
} else {
echo "File not uploaded!<br />";
}
} else {
echo "The form was not submitted!<br />";
}
}
}
################
# test area
################
$obj = new LoLParser;
$obj->setFile($_FILES);
?>
通过将行为包装在课堂中,您获得了两个潜在的(相关)好处:现在这是可注射和可嘲弄的。 – 2012-01-01 22:56:15
@OliCharlesworth我会同意嘲笑,但仍然没有看到注入超级全球的目的。 – 2012-01-01 22:57:06
好吧,它消除了以前直接访问超级全局的依赖。 – 2012-01-01 22:58:08