PHP:从函数返回一个值,并更改它所在的while循环的变量
是否可以执行一个函数,然后为Var返回一个新值,因此当它再次尝试循环时,它会检查条件并检测更改 假设我有这个函数: 这是我的while循环: 我应该如何修改代码以便 函数changeZ为变量$z返回一个新值PHP:从函数返回一个值,并更改它所在的while循环的变量,php,function,while-loop,Php,Function,While Loop,是否可以执行一个函数,然后为Var返回一个新值,因此当它再次尝试循环时,它会检查条件并检测更改 假设我有这个函数: 这是我的while循环: 我应该如何修改代码以便 函数changeZ为变量$z返回一个新值 因此,当循环检查条件1时,函数中的$z和循环中使用的$z不是同一个人。因此,您必须将loop-z的值设置为函数的返回值 $a = 0; $z = 10; while($a<$z){ $z = changeZ(); $a++; } 你必须把这个 $a = 0; $z
因此,当循环检查条件1时,函数中的$z和循环中使用的$z不是同一个人。因此,您必须将loop-z的值设置为函数的返回值
$a = 0;
$z = 10;
while($a<$z){
$z = changeZ();
$a++;
}
你必须把这个
$a = 0;
$z = 10;
while($a<$z) {
$z = changeZ();
$a++;
}
但正如所评论的,您似乎肯定是弄错了。您可以通过引用传递或返回值
$z = 100;
change($z);
function change(&$var) {
$var = 1;
}
$z = 100;
$z = change($z);
function change($var) {
return $var * 100 - 50;// Logic with $z obviously can be whatever
}
因为函数返回一个值,所以应该将变量设置为包含返回值。这将执行您要求的操作,从而使循环只运行一次
您可以做的另一件事是将变量传递到这样的函数中
function changeZ($in){
$out = $in-1;
return $out;
}
$a = 0;
$z = 10;
while($a<$z){
$z = changeZ($z);
$a++;
}
这将导致循环在一个数字上升而另一个下降时运行5次
0您可以将函数返回的数据存储到数组中
function changeZ(){
$z = $row['result']; //your data from database
return $z;
}
$a = 0;
$z = 10;
$returned_value=new array();
while($a<$z){
$returned_value[] = changeZ();
$a++;
}
一般来说,$z=changeZ——但这对代码的编写方式没有意义。你想在这里干什么?你走错了路。@Jon我有一个与数据库交互的函数。while循环取决于我与数据库交互后得到的结果。这并不能说明什么…@Jon我只是不太确定$z=changeZ;适用于这种情况,因为$z不是此函数的主要主题$z只在一个条件下改变,比如说,如果一行在表中有一个特定的值。是的,所以把整行传递给函数。这就是我的意思,你走错了路。
$z = 100;
change($z);
function change(&$var) {
$var = 1;
}
$z = 100;
$z = change($z);
function change($var) {
return $var * 100 - 50;// Logic with $z obviously can be whatever
}
$a = 0;
$z = 10;
while($a<$z){
$z = changeZ();
$a++;
}
function changeZ($in){
$out = $in-1;
return $out;
}
$a = 0;
$z = 10;
while($a<$z){
$z = changeZ($z);
$a++;
}
function changeZ(){
$z = $row['result']; //your data from database
return $z;
}
$a = 0;
$z = 10;
$returned_value=new array();
while($a<$z){
$returned_value[] = changeZ();
$a++;
}