2016-09-12 4 views
0

ここにカプセル化されたカテゴリを扱っています。それはechoで正常に動作しますが、私は他の関数に値を渡したい私の関数は呼び出し時に戻りませんなぜですか?

function resolve_kat($kat_id){ 

    ...credentials here... 
    $db = new mysqli($host_name, $user_name, $password, $database, NULL, $socket); 

    $sql_kat = "SELECT * FROM categories WHERE category=".$kat_id; 
    $kat_res = $db->query($sql_kat); 
    $kat = $kat_res->fetch_assoc(); 

    if($kat['upppercategory']==0){ 
     return $kat['category']; 
    } 
    else { 
     resolve_kat($kat['upppercategory']); 
    } 

    $kat_res->close(); 
} 

$passtome = resolve_kat(927); 

echo $passtome; 

:私は、私は再帰関数によってトップ層に到達するまで、それらを解決します。 何が間違っていましたか?

+3

'return resolve_kat($ kat ['upppercategory']); ' –

答えて

0

あなたのIFでリターンを起こしているように見えます。次のようにする必要があります。

if($kat['upppercategory']==0){ 
    return $kat['category']; 
} 
else { 
    return resolve_kat($kat['upppercategory']); 
} 

別の機能に渡すことができます。

$passtome = resolve_kat(927); 

function otherFunction ($passtome) { 
    #What you want to do... 
} 
+0

ありがとう! – nzedcom

関連する問題