Sbo*_*nde 2 php for-loop function
我在尝试在循环中运行代码时遇到问题,我的循环由一个函数组成.
这是我的编码:
$new = array(1,2,3,4);
for($i=0;$i<=3;$i++){
$val = $new[$i];
function myfunction($value) {
//Do something
}
echo $val;
}
Run Code Online (Sandbox Code Playgroud)
问题是代码只输出数组中的第一个值.我很困惑,我不想在循环中声明一个函数?
您的代码最终会出现致命错误,因为在第二次迭代时它会尝试重新声明函数myfunction.这就是为什么它只打印数组的第一个值.
为了避免这个致命错误,您可以使用如下function_exists()函数检查是否已经定义了该函数:
$new = array(1,2,3,4);
for($i=0;$i<=3;$i++)
{
$val = $new[$i];
if(!function_exists('myfunction'))
{
function myfunction($value) {
//Do something
}
}
echo $val;
}
Run Code Online (Sandbox Code Playgroud)
PHP是一种脚本语言,在for循环或if语句内部声明一个函数在语法上是正确的,但这是一种不好的做法,之后可能会导致很多错误.
最好的方法是在循环外声明一个函数,如果需要,可以在循环中调用它,如下所示:
<?php
function myfunction($value) {
//Do something
}
$new = array(1,2,3,4);
for($i=0;$i<=3;$i++)
{
$val = $new[$i];
myfunction($value); //may you was intended to pass $val here?
echo $val;
}
Run Code Online (Sandbox Code Playgroud)
不要在循环中声明函数,在循环之前声明它,然后在循环内调用它 myFunction($value);
该功能应该在一个单独的程序中
$new = array(1,2,3,4);
for($i=0;$i<=3;$i++)
{
$val = $new[$i];
myfunction($val)
echo $val;
}
Run Code Online (Sandbox Code Playgroud)
那么这就是你的功能
function myfunction($value)
{
//Do something
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17530 次 |
| 最近记录: |