2012-11-28 77 views
0

有人能看到爲什麼我的check_multi函數將返回 -不能模型內訪問功能ZEND

Fatal error: Call to undefined function check_multi() in /var/www/vhosts/aero.onelinksoftware.com/application/models/Design.php on line 21

上述錯誤顯示出來,我不知道我做錯了。我嘗試將我的功能設置爲公共,私人,靜態和其他組合,但不管我嘗試什麼;系統仍然出錯。你不能在Zend中的Model中調用函數嗎?我不明白爲什麼我不能使用我創建的函數,如果它在我創建的類中。

如果我在check_multi調用之前回聲並死亡;我可以看到我的文字等。我還執行了語法的php測試,並且只要報告它就是有效的。

class Model_Design 
{ 
    /** 
    * Constructs our partials. 
    * 
    * @return void 
    */ 
    public function __construct($key) 
    { 
     // Get the DB Connection 
     $db = Zend_Registry::Get('db'); 
     // Setup the SQL Statement 
     $sql = $db->select()->from('design', array('id')); 
      // Get the Result 
      $result = $sql->query(); 
      // Get our Row 
      $row  = $result->fetchAll(); 

      if(check_multi($key, $row)) { 
       echo "omg"; die(); 
      } 

     // Make sure the id isn't empty 
     if (empty($key)) { 
      throw new Exception('You have a disturbing lack of variables.'); 
     } 

     // Store the id 
     $this->variables = $key; 


     // Construct our query 
     $sql = $db->select()->from('design')->where('`id` = ?', $key); 
      // Get the result 
      //$result = $sql->query(); 
      //$row = $result->fetch(); 
    } 

    private function check_multi($n, $arr) 
    { 
     foreach ($arr as $key => $val) { 
      if ($n===$key) { 
       return $key; 
      } 
     } 
     return false; 
    } 
} 

回答

1

嘗試:

$this->check_multi($key, $row); 

從它的容器類的內部訪問的變量或函數,你必須使用$此。 $這是該類的當前實例。

+0

這很好。謝謝!我正在拉我的頭髮。 – ILikeTurtles

1

如何調用該函數?使用$this->check_multi($n,$arr);或者您可以嘗試function_exists()來檢查功能是否真的存在

+0

這也是答案;因爲它是正確的,但Iznogood首先回答。 – ILikeTurtles

+0

我是Stack overflow的新手。我在回答問題時正在輸入答案 –

+0

@NavneetSingh是的,它經常是這樣的。種族:)歡迎來到stackoverflow :) – Iznogood