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

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

導致錯誤“無法在寫入上下文中使用方法返回值”的原因在這個 Codeigniter 3 應用程序中?

導致錯誤“無法在寫入上下文中使用方法返回值”的原因在這個 Codeigniter 3 應用程序中?

PHP
互換的青春 2023-12-15 17:19:22
我正在使用 Codeigniter 3 開發社交網絡應用程序,Ion-Auth。Github 存儲庫 和 Bootstrap 4。您可以在此處查看編輯用戶的個人資料時,我檢查編輯表單中是否有新的用戶照片(頭像)。如果是,我使用它,如果不是,我使用(保留)已存在于 users 表中的表(文件路徑為 application/controllers/Auth.php):$new_file = $this->upload->data('file_name');$this->file_name = (isset($new_file) && !empty($new_file)) ? $new_file : $user->avatar;上面的代碼工作正常。但是,我需要在會話中更新用戶的照片,為此我在下面添加了$this->file_name = (isset($new_file) && !empty($new_file)) ? $new_file : $user->avatar:if (isset($new_file) && !empty($new_file)) {    $this->session->userdata('user_avatar') = $new_file;}上面的 if 語句會導致錯誤“無法在寫入上下文中使用方法返回值”。我究竟做錯了什么?
查看完整描述

2 回答

?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

您不需要同時使用兩者。

if?(isset($new_file)?&&?!empty($new_file))?{?
???$this->session->userdata('user_avatar')?=?$new_file;
}

此處您應該使用?$this->session->set_userdata('user_avatar',$new_file)(根據用戶指南)。

所以就變成了

if?(!empty($new_file))?{?
???$this->session->set_userdata('user_avatar',$new_file);
}

您甚至不需要考慮使用 isset(),因為您在上面的代碼中定義 $new_file,因此它始終會被“設置”。即?isset($new_file)?將永遠為真。

但是如果 $new_file 為空,你打算做什么呢?這是你需要考慮的問題。


查看完整回答
反對 回復 2023-12-15
?
DIEA

TA貢獻1820條經驗 獲得超2個贊

您通常會在調用執行寫入的方法的 if 語句中遇到該錯誤。



查看完整回答
反對 回復 2023-12-15
  • 2 回答
  • 0 關注
  • 248 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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