我的课程有问题。
FileHandler::getFileInfo($_FILES["datei"])
返回此数组:
Array ( [tmp_name] => D:\xampp\tmp\phpD1C1.tmp [size] => 0.01 [type] => text/plain [error] => 0 [name] => witze.txt )
我想在“public function assignVariables()”中将“[error] => 0”分配给我的模板但是它不起作用。
我该怎么做才能解决问题?
我的课程:
<?php
// Imports von den Klassen die benötigt werden
require_once(INCLUDE_PATH . 'smarty/Smarty.class.php');
require_once(CLASS_PATH . 'database.class.php');
require_once(CLASS_PATH . 'FileHandler.class.php');
class IndexPage extends Smarty {
public $templateName = 'index.tpl';
public $query = null;
public $fileError = array();
public $sql = array();
public function __construct() {
parent::__construct();
$this->template_dir = TEMPLATE_PATH;
$this->compile_dir = COMPILE_DIR;
$this->config_dir = CONFIG_DIR;
$this->cache_dir = CACHE_DIR;
$this->assignVariables();
$this->returnInfos();
$this->showTemplate($this->templateName);
}
public function saveData() {
}
public function returnInfos() {
if(isset($_FILES["datei"])) {
$fileError = FileHandler::getFileInfo($_FILES["datei"]);
}
}
public function assignVariables() {
print_r($fileError);
echo $fileError["error"];
$this->fileError["error"];
self::assign(
array(
"array" => array(1,2,3,4),
"error" => $this->fileError["error"],
)
);
}
public function showTemplate($template) {
self::display($template);
}
}
?>
答案 0 :(得分:3)
有两个问题。首先是在构造函数中。应在returnInfos
方法之前调用assignVariables
方法。
第二个问题:您使用局部变量而不是属性。这些方法应如下所示:
public function returnInfos() {
if(isset($_FILES["datei"])) {
$this->fileError = FileHandler::getFileInfo($_FILES["datei"]);
}
}
public function assignVariables() {
print_r($this->fileError);
$this->fileError["error"];
self::assign(
array(
"array" => array(1,2,3,4),
"error" => $this->fileError["error"],
)
);
}
答案 1 :(得分:0)
您正在分配FileHandler :: getFileInfo($ _ FILES [“datei”]);到returnInfos()中的本地变量$ fileError,无法从assignVariables()访问。从该代码我看不到$ this-&gt; fileError的设置位置
答案 2 :(得分:0)
选项一: returnInfos()
将$fileError
替换为$this->fileError
或
选项二:在returnInfos()