-1

管理者向けに編集: 問題の原因が異なるため、既に尋ねられた質問と同じではありません!!!

セッションテーブルに保存されている、現在選択されている言語を表示しようとしています。私が最初に行ったのは、次の簡単なステートメントでした。

<?php echo $this->session->userdata("language"); ?>

これは非常にうまく機能します。ここでの問題は、言語が英語と小文字でセッションテーブルに保存されることです。これは、「英語」、「ドイツ語」、「スペイン語」などを意味します。

次に、次のように if ステートメントを使用してこれを解決しようとしました。

<?php if ($this->session->userdata("language") = spanish) {  echo 'Español'; } else if ($this->session->userdata("language") = english) {  echo 'English'; } else echo 'Deutsch'; ?>

残念ながら、これは次を返します。

致命的なエラー: 270 行目の /home/.../.../.../app/views/header.php の書き込みコンテキストでメソッドの戻り値を使用できません

私が間違っていることについてのヒントはありますか?迅速なご協力ありがとうございます ;)

4

4 に答える 4

2

( method return )に値 ( write ) を割り当てることができないため、比較演算子を使用する必要があります==(これは通常のよくあるタイプミスだと思います)。=$this->session->userdata('anything')

書き込みコンテキストではメソッドの戻り値を使用できません

 <?php if ($this->session->userdata("language") == 'spanish') {  
          echo 'Español'; 
        } 
       elseif($this->session->userdata("language") == 'english') { 
          echo 'English'; 
      } 
      else echo 'Deutsch'; 
    ?>
于 2013-10-24T18:04:56.820 に答える
1

==演算子と引用符付き文字列はそれを解決する必要があります:

<?php 
if ($this->session->userdata("language") == 'spanish') {  echo 'Español'; } 
else if ($this->session->userdata("language") == 'english') {  echo 'English'; } 
else echo 'Deutsch'; 
?>
于 2013-10-24T18:05:19.837 に答える
0

SWITCHこれを実現するためにステートメントを使用します[コードは実際に読みやすくなります]

<?php 

$language=$this->session->userdata("language");

switch($language)
{
    case "spanish":
        echo 'Español';
        break;

    case "english":
        echo 'English';
        break;

    //.... goes on



}
于 2013-10-24T18:03:55.483 に答える
0

2 つのことを比較するには、==Operator を使用する必要があります。また、文字列値は引用符で囲む必要があります"myStringValue"

于 2013-10-24T18:06:23.997 に答える