从另一个 PHP 函数调用 PHP 函数的逻辑错误
Posted
技术标签:
【中文标题】从另一个 PHP 函数调用 PHP 函数的逻辑错误【英文标题】:error in logic calling a PHP function from another PHP function 【发布时间】:2012-06-30 22:38:51 【问题描述】:我们有一个“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 );
【问题讨论】:
【参考方案1】:=
用于赋值,==
用于检查
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 );
【讨论】:
【参考方案2】:你的比较是错误的:
$user_item['on_hand'] = '1'
应该是:
$user_item['on_hand'] == '1'
由于分配,第一个总是真实的。遗憾的是,这是一个非常常见的错误,但您可以将条件写成:
'1' = $user_item['on_hand']
这将导致错误,因为您不能使用文字作为左手表达式。代码中有问题的直接迹象:)
【讨论】:
+1 用于解决一个非常常见且经常被“作者”问题忽略的问题以上是关于从另一个 PHP 函数调用 PHP 函数的逻辑错误的主要内容,如果未能解决你的问题,请参考以下文章