【发布时间】:2009-11-28 22:29:40
【问题描述】:
我有一个这样的函数原型:
function do_upload( $file, $id, $type )
我这样调用函数:
$this->do_upload( $files, $id, 'article' );
但是,实际上只有 $files 被传递给函数。我确定这很简单,但我做错了什么?
编辑:
所以 $file 只是一个文件信息数组,类似于 $_FILES 并且可以很好地传递,我在函数中进一步对其进行了一些操作。
$id 在我调用函数之前设置,如果我 print_r() 在函数调用之前看到我期望的 ID,并且 $type 只是一个字符串。
但是,如果我 print_r() 或 die() 在 $id 或 $type 上它们都是空白的,并且 var_dump() 返回以下内容:
die( var_dump( $id ) ); -> string(0) ""
die( var_dump( $type ); -> bool(false)
就在函数调用之前:die( var_dump( $id) ); -> string(3) "111"
有什么想法吗?
解决方案:
如果有人遇到类似问题,请查看下面接受的答案。本质上,我需要通过引用传递 $files 数组,因为它耗尽了可用的堆栈空间。
谢谢
【问题讨论】:
-
你怎么知道它是唯一被通过的东西?在其中撒上一些
var_dump()语句,缩小问题发生的范围,然后找出问题所在。在那里你可以做得比我们在这里做得更好。 -
您需要显示更多信息。到目前为止,我们只能猜测。我的第一个猜测是当你调用函数时变量只是空的。在您的代码中添加一些调试行(
print_r($file), print_r($id)等)并显示输出。 -
数组$file通过fine发送。如果我在函数调用之前 print_r( $id ),我会得到我所期望的,而我发送的另一件事是一个字符串。但是,在函数中 $id 和 $type 都是空白的... ?!
-
似乎所有答案都在这里被否决,所以我不会打扰。但我的猜测是你想用 $this->do_upload($this->files,$this->id,'article); 调用它
-
这个问题缺少很多肯定有助于回答的信息。
标签: php codeigniter