亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我會收到不支持的操作數錯誤 (PHP)?

為什么我會收到不支持的操作數錯誤 (PHP)?

PHP
郎朗坤 2021-06-09 13:20:38
我正在測試一個新功能,突然開始收到不支持的操作數類型錯誤消息。捕獲錯誤的代碼不是我寫的,所以我無法更改它。我完全不知道為什么我會收到錯誤消息。錯誤說它是在線第 76 行,即$transcripts[$inmateshort] = $job->getTranscript() + array(    'inmatename' => $inmateshort,    'inmatelong' => $inmatelong,    'parentid' => $job->parentid);if 的 else 部分。這是更多代碼:我在這里調用函數:echo '<a href="' . site_url('invoice/copyTranscriptsToParent/' . $job['id']) . '" id="copyCreateInvoice">Copy transcripts to parent job</a>';這是功能:function copyTranscriptsToParent($jobs) {    $transcripts = array();    foreach ($jobs as $job) {        $name = explode(' ', strtok($job->re, ';'), 2);         $nameshort = $name[1] . ', ' . substr($name[0], 0, 1);         $namelong = $name[1] . ', ' . $name[0];         if (array_key_exists($nameshort, $transcripts)) {            $transcripts[$nameshort]['personname'] = $transcripts[$nameshort]['namelong'];             $transcripts[$namelong] = $job->getTranscript() + array('personname' => $namelong, 'parentid' => $job->parentid);        } else {            $transcripts[$nameshort] = $job->getTranscript() + array('personname' => $nameshort, 'namelong' => $namelong, 'parentid' => $job->parentid);        }     }    $files = array();    foreach ($transcripts as $transcript) {        $origfilename = strtoupper($transcript['personname']);        $filename = $origfilename;        $i = 1;        while (in_array($filename, $files)) {            $i++;            $filename = $origfilename . ' (' . $i . ')';        }正如我所說,我無法更改此功能,為什么會出現錯誤?任何幫助深表感謝。
查看完整描述

2 回答

?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

從您的評論中,我們發現$job->getTranscript()返回NULL. 您不能將數組添加到NULL值,這將導致以下錯誤。

致命錯誤:不支持的操作數類型

由于您已經聲明您不能更改您的copyTranscriptsToParent()函數,您可以編輯您的getTranscript()方法以在失敗時返回一個空數組而不是 null,以便您始終將一個數組添加到一個數組中。

或者,您可以確保傳遞給copyTranscriptsToParent()函數 (the $jobs) 的任何內容都具有getTranscript()不返回 null 的有效調用。


查看完整回答
反對 回復 2021-06-25
?
當年話下

TA貢獻1890條經驗 獲得超9個贊

您可以嘗試使其無錯誤,如下所示:-


if( !empty($job->getTranscript()) ) {


     if( gettype($job->getTranscript()) == "object") {

         //convert to array and store it to a variable

     }


     $getTranscript_data = $job->getTranscript();

} else {

     $getTranscript_data = array();

}



$transcripts[$inmateshort] = array_merge($getTranscript_data + array(

                                'inmatename' => $inmateshort,

                                'inmatelong' => $inmatelong,

                                'parentid' => $job->parentid

                             ));


查看完整回答
反對 回復 2021-06-25
  • 2 回答
  • 0 關注
  • 152 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號