fetch 内のネストされた関数 (別の関数内) は実行されません。
fn_smth1 は fn_smth2 内にネストされており、fn_smth2 を介して結果を出力する必要があります
以下の例は簡略化されたバージョンです。
function fn_smth1 ($id){
global $mysqli;
$stmt = $mysqli->stmt_init();
if ($stmt->prepare("SELECT code FROM at WHERE id = ?")){
$stmt->bind_param("i",$id);
$stmt->execute();
$stmt->bind_result($code);
if ($stmt->fetch()){
$code_displ = $code;
}
}
$stmt->close;
return $code_displ;
}
function fn_smth2($id){
global $mysqli;
$stmt = $mysqli->stmt_init();
if ($stmt->prepare("SELECT idx, name FROM at WHERE id = ?")){
$stmt->bind_param("i",$id);
$stmt->execute();
$stmt->bind_result($idx, $name);
if ($stmt->fetch()){
$code_displ = $name.' === '.fn_smth1($idx);
}
}
$stmt->close;
return $code_displ;
}
echo fn_smth2(1);
//期待される
ここにいくつかの名前 === ここにいくつかのコード
//受け取った
ここに何らかの名前 === null (関数 fn_smth1 は値を与えません)