2016-08-17 43 views
-2

我不斷收到一個致命錯誤時,腳本是我的PHP的服務器上運行,PHP致命錯誤不能使用字符串偏移量爲ARRAY

這個Web應用程序十年前建成並我目前清除錯誤,這樣我們就可以開始更新它。當前版本PHP 5.2.17

Fatal error: Cannot use string offset as an array in /home/user/public_html/admin/script.php on line 1418 

這是該行的錯誤是,

 $name = $d["@"]["_Name"]; 

這是全功能的,

 if (isset($b["_BORROWER"]["EMPLOYER"])) { 

      if (!isset($b["_BORROWER"]["EMPLOYER"][0])) { 
       $temp = $b["_BORROWER"]["EMPLOYER"]; 
       unset($b["_BORROWER"]["EMPLOYER"]); 
       $b["_BORROWER"]["EMPLOYER"][0] = $temp; 
      } 

      foreach($b["_BORROWER"]["EMPLOYER"] as $c => $d) { 
       $pid = '0'; 
       // Finish up. 
       $item["type"] = "Personal"; 
       $name = $d["@"]["_Name"]; 
       //check for files in other bureaus 
       $query = doquery("SELECT name,id FROM <<myitems>> WHERE cid='".$client["id"]."' AND type='Personal'"); 
       $results = dorow($query); 
       if($results){ 
        if(isset($results['name'])){ 
         $temp = $results; 
         unset($results); 
         $results[0] = array($temp); 
        } 
        foreach($results as $c){ 
         if(isset($c['name'])){ 
          if($address == decrypt_string($c['name'])) { 
           $pid = $c['id']; 
           break; 
          };         
         } 
        } 
       } 

有誰知道是什麼觸發此錯誤,以及如何修理它?

+0

嗯,我絕對不會懷疑,這是10年前製造。你可以'var_dump($ d);'在該行之前,向我們展示彈出的內容? – Darren

+0

確保'$ d [「@」]'是一個數組。 – axiac

+0

我超級期待下臺投票。我的主要問題是在開發環境中複製問題非常困難,這個應用程序非常廣泛,並且此客戶端沒有開發環境設置。我正在使用非常舊的代碼進行排序。這個腳本運行一個第三方應用程序,當它運行時向客戶端50美元收費,所以我對如何測試這個問題非常懷疑。 – wuno

回答

0

您可以使用isset()檢查數組值存在或者不喜歡,

$name = isset($d["@"]["_Name"]) ? $d["@"]["_Name"] : ""; 
相關問題