2017-01-15 16 views
0

私はこの静的メソッドから値を返すにはどうすればよいですか?

)checkForDuplicateUniqueId(以下、静的メソッドから値を返すようにしようとしているが、新たな一意の値が2

$uniqueValue = 1; 

public static function checkForDuplicateUniqueId($table, $columnName, $uniqueValue, $db) { 

    $sql = "SELECT COUNT(`$columnName`) as noOfResults FROM `$table` WHERE `$columnName` = '$uniqueValue'"; 

    if($db->fetchOne($sql)['noOfResults'] < 1) { // not found 

     return $uniqueValue; 

    } else { 

     $uniqueValue++; 

     self::checkForDuplicateUniqueId($table, $columnName, $uniqueValue, $db); 

    } 
あるようのは、既存の$ uniqueValueはdbテーブルにありますと仮定し、私たちが望むみよう

私は(代わりにそれを返す)であれば、他の文の最初の条件から一意の値をエコーし​​た場合、それはすなわち

if($db->fetchOne($sql)['noOfResults'] < 1) { // not found 
    echo $uniqueValue; 
} 

どのようにこれは期待通りに再帰が発生していることを意味し、出力2、意志上記のecho文は何も出力しません:

echo Helper::checkForDuplicateUniqueId('issue_materials_log', 'date', $timeStamp, $this->db); 

上記のecho文は何も出力しません。

答えて

1

elseの部分から何も返されません。これを行う:

return self::checkForDuplicateUniqueId($table, $columnName, $uniqueValue, $db); 
+0

魅力的な作品です。ありがとうございました。 – andromeda

+0

私はしています。 S/Oでは、あなたが質問してから数分が経過するまで回答を受け入れることができません。 – andromeda