2013-06-29 120 views
0

我有我自己班的問題。如何從數組中獲取數組元素?

FileHandler::getFileInfo($_FILES["datei"]) 

回報這數組:

Array ([tmp_name] => D:\xampp\tmp\phpD1C1.tmp [size] => 0.01 [type] => text/plain [error] => 0 [name] => witze.txt) 

我想分配 「[錯誤] => 0」 到我的模板 「公共職能assignVariables()」,但它不工作。

我能做些什麼來解決這個問題?

我的類:

<?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

你從來沒有真正賦予'$此 - > fileError'。你在'returnInfos()'中分配了一個局部var'$ fileError',但在'assignVariables()'中你有一個沒有操作的$ this-> fileError ['error'];'沒有任何賦值。 –

回答

3

有兩個問題。首先是在構造函數中。應在0​​方法之前調用returnInfos方法。

第二個問題:您使用本地變量而不是屬性。這些方法應該是這樣的:

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"], 
     ) 
    ); 
} 
+0

在{$ error}中沒有任何內容。但0在哪裏? – Evolutio

+0

非常感謝。問題出在我的模板{$ error.1}中:/ – Evolutio

0

您指定的FileHandler :: getFileInfo($ _ FILES [ 「datei」]);轉換爲無法從assignVariables()訪問的returnInfos()中的局部變量$ fileError。從該代碼我沒有看到$ this-> fileError被設置在哪裏

0

選項之一:returnInfos()取代$fileError$this->fileError

選項二:進行分配的returnInfos()

相關問題