質問
私は、彼らが存在する時点までの関数から値のセットを返すようにしたい.... 例えば....
function abc($i="3"){
for($a=1;$a<=$i;$a++) {
$name='t'.$i;
$$name = "ae".$a;
}
//now i am returning values
return array($t1,$t2,$t3,$t4,$t5,$t6,$t7,$t8,$t9,$t10);
//but i only want to return $t1,$t2,$t3 depending on $i
}
おかげで....
@therefromhere あなたがより良い方法でそれを理解できるように、私はまた、ループ内の配列を作成しています、私は元のコードを貼り付けます。
function extracting_comments($table, $fields,$condition,$order,$limit){
$query="SELECT ".$fields."
FROM ".$table."
WHERE ".$condition."
ORDER BY ".$order."
LIMIT ".$limit." ";
if($stmt = $this->conn->prepare($query)) {
$stmt->execute();
$row = array_pad(array(), $stmt->field_count, '');
$params = array();
foreach($row as $k=>$v) {
$params[] = &$row[$k];
echo $params[0];
}
call_user_func_array(array($stmt,'bind_result'),$params);
$i=0;
while($stmt->fetch()) {
$i++;
$name='t'.$i;
$$name = array();
foreach ($row as $b=>$elem) {
$atul[$b]=$row[$b];
}
$$name=$atul;
}
return array($t1,$t2,$t3,$t4,$t5,$t6,$t7,$t8,$t9,$t10);
$stmt->close();
}
}
$ t6において、$ t7のは、$ T8、$のT9、$のT10を返すはポイント彼らはありませんので、今データの唯一の5行は、自分のしています
そして私はそれを修正したい、と私は
使用して関数を呼び出しています。
$extract=extracting_comments($table, $fields,$condition,$order,$limit);
...助けてくださいありがとう
解決
私は、これはあなたを助けると信じています。あなたは、副作用やバグの多くの非常に複雑なコードを持って、あなたはそれをredisgnと考えた方が良いと思います。また、帰国後の文を置くことは何もそれが呼び出されないため、何の効果もありません。
function extracting_comments($table, $fields,$condition,$order,$limit){
$query="SELECT ".$fields."
FROM ".$table."
WHERE ".$condition."
ORDER BY ".$order."
LIMIT ".$limit." ";
if($stmt = $this->conn->prepare($query)) {
$stmt->execute();
$row = array_pad(array(), $stmt->field_count, '');
$params = array();
foreach($row as $k=>$v) {
$params[] = &$row[$k];
echo $params[0];
}
call_user_func_array(array($stmt,'bind_result'),$params);
$i=0;
$result = array();
while($stmt->fetch()) {
$i++;
foreach ($row as $b=>$elem) {
$atul[$b]=$row[$b];
}
$result[]=$atul;
}
$stmt->close();
return $result;
}
}
他のヒント
ちょうどあなたのfor
ループで配列を作成:
function abc($i=3) {
$array = array();
for ($a=1; $a<=$i; $a++) {
$array[] = "ae".$a;
}
return $array;
}
<時間>
あなたの質問を編集したAN私達にあなたの実際の問題を明らかにした後、ここに私の提案を参照してください。
function extracting_comments($table, $fields, $condition, $order, $limit) {
$retVal = array();
$query = "SELECT ".$fields."
FROM ".$table."
WHERE ".$condition."
ORDER BY ".$order."
LIMIT ".$limit." ";
if ($stmt = $this->conn->prepare($query)) {
$stmt->execute();
$row = array_pad(array(), $stmt->field_count, '');
call_user_func_array(array($stmt, 'bind_result'), $row);
while ($stmt->fetch()) {
$retVal[] = $row;
}
$stmt->close();
return $retVal;
}
}
あなたが一時的な変数を必要としない、あなたが一緒に行くように、アレイを構築するためにきれいになるだろう
function abc($i="3") {
$myArray = array();
for($a=1;$a<=$i;$a++) {
$myArray[] = "ae" . $a; // add new values to the end of the array
}
return $myArray;
}
あなたは変数が存在する(かつnullではない)かどうかを確認したい場合は、使用 ISSET()のます。
所属していません StackOverflow