2009-10-18 49 views
-1

内变量的问题我有这个在我的课某种关闭PHP类

当第二个函数被调用PHP错误与 错误的数据类型,只有变量可参照过去。

我不知道他们的意思是说

代码来自php.net 如果相同的代码是它执行罚款类

我在做什么错在这里之外,如果我我正在上课吗?

$extensiesAllowed= array(); 

function __construct() { 
     $this->extensiesAllowed= array("txt", "pdf"); 
     $this->fileName= $_FILES['file']; 
    } 


    private function isAllowedExtensie($fileName) { 

    return in_array(end(explode(".", $fileName)), $this->extensiesAllowed); 
    } 



public function check_upload() { 

     if($this->fileName['error'] == UPLOAD_ERR_OK) { 
      if(isAllowedExtensie($this->fileName['name'])) { 
      return true; 

      } 
     } 
    } 

php的错误显示

Array 
(
    [bestandsNaam] => ACCOUNT INFO.txt 
    [extensiesAllowed] => 
) 

谢谢,理查德

+0

这可能会更好,如果你可以发布整个班级,并发布错误消息你得到 – Mez 2009-10-18 23:11:52

+0

没有,没有什么比它更多的调试 我保留了其余的,你有错误信息? 我刚编辑它 – Richard 2009-10-18 23:16:31

+0

这不是一个错误信息! – Mez 2009-10-18 23:17:03

回答

2

尝试把结束和爆炸在单独的语句 - 我认为end()可能通过引用来阅读。在任何情况下,如果它不修复它,它将帮助您找出哪些线路会导致您的问题。

+0

'end()'确实通过引用传递。另一种方法是使用'pathinfo()'(http://php.net/pathinfo)。 – outis 2009-10-18 23:36:09

+0

$ a = explode(“。”,$ filename); \t \t return in_array(end($ a),$ this-> extensiesAllowed); 我真的不明白,但错误消失了。 这样做似乎并不明显,因为它在课堂外运作良好。 – Richard 2009-10-18 23:41:56

0

在第二个函数/方法你应该叫应叫isAllowedExtensie通过$ this-> isAllowedExtensie()

if($this->isAllowedExtensie($this->fileName['name'])) { 

编辑:忘记我的第二条评论..

+0

哦,狗屎我错过了那一个,那是一个。现在我只剩下第一个错误了。通过引用错误传递。 – Richard 2009-10-18 23:25:13

+0

我真的不知道为什么,但将语句分别结束()和爆炸()分开了。 – Richard 2009-10-18 23:51:52

+0

好的。我喜欢downvotes – 2009-10-19 00:08:27