3

「gotItem」関数があります。この関数は、「on_hand」値が「1」のItemで実行される場合、「outItem」関数も呼び出す必要があります。何らかの理由で、「gotItem」関数は、「on_hand」値が「1」または「0」であるかどうかに関係なく、「outItem」関数を呼び出しています。なぜ何かアイデアはありますか?コードは以下のとおりです

function gotItem( $user_item_id, $user_id ) 
{
   $user_item = $this->getUserItem( $user_id, $user_item_id );
   if ( ( ! is_null( $user_item ) ) && ( $user_item['on_hand'] = '1' ) )
   $this->outItem( $user_item_id, $user_id );
4

2 に答える 2

3

===チェックの割り当て使用に使用されます

  function gotItem( $user_item_id, $user_id ) {
    $user_item = $this->getUserItem( $user_id, $user_item_id );
    if ( ( ! is_null( $user_item ) ) && ( $user_item['on_hand'] == '1' ) )
    $this->outItem( $user_item_id, $user_id );
于 2012-06-29T11:39:25.267 に答える
3

あなたの比較は間違っています:

$user_item['on_hand'] = '1' 

する必要があります:

$user_item['on_hand'] == '1' 

最初のものは、割り当てのために常に真実になります。悲しいことに、これは非常によくある間違いですが、次のような条件を書くことができます。

'1' = $user_item['on_hand']

リテラルを左側の式として使用できないため、エラーが発生します。コードに何か問題があることを示す即時の兆候:)

于 2012-06-29T11:40:57.070 に答える