3

我们有一个“gotItem”函数,如果在“on_hand”值为“1”的项目上运行,它也应该调用“outItem”函数。出于某种原因,“gotItem”函数正在调用“outItem”函数,无论“on_hand”值是“1”还是“0”。任何想法为什么?代码如下

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 回答