我如何从数组中获取数组元素?

时间:2013-06-29 21:38:18

标签: php oop smarty

我的课程有问题。

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);
    }
}
?>

3 个答案:

答案 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()

中进行分配