如何在函数内使用循环 - php

Posted

技术标签:

【中文标题】如何在函数内使用循环 - php【英文标题】:How to use a loop inside a function - php 【发布时间】:2022-01-18 05:48:34 【问题描述】:

如果 $length 和 $width 是一个数字,它可以正常工作。但是在我将它们更改为从 html 收集数据的变量后,它什么也没显示。我哪里做错了?

 $format = $_POST['format'];
            $width = $_POST['width'];
            $length = $_POST['length'];
            
            
            function square($length, $width, $x) //This is the function
            
                for($i=1;$i<=$length;$i++) //This is the loop
                
                    for($j=1;$j<=$width ;$j++)
                    
                    echo "$x"; 
                           
                    echo "<br>";
                
            

            if($format == "square")
            
                $square = "***";
                square($square);
             

【问题讨论】:

尝试将square($square); 更改为square($length, $width, $square); @masterguru 成功了!!谢谢 欢迎您!乐于助人。 【参考方案1】:

从你的函数声明中删除 $length 和 $width。由于它们是全局变量,因此它们不需要存在。在函数中使用同名变量会导致它们的新版本被创建为函数的局部变量。将 $square 传递给该方法会将函数级别 $length 设置为字符串“***”,而不是设置为任何 $length 应该是全局的。此外,$width 和 $x 在函数内部为 null,因为您没有将它们传递给函数。

你只需要将 x 作为函数的参数,然后将 $length 和 $width 声明为全局变量。

function square($x)

    global $length, $width;
...

您可能想了解如何使用global variables 和functions。

【讨论】:

这个解决方案似乎没有运行:php Notice: Undefined variable: length in /home/runner/.code.tio on line 8,你可以看到here。还要检查我在原始帖子中的评论,它似乎运行良好。 @masterguru,看来我也需要重新审视我的 PHP。我已经更新了我的答案。 太好了,谢谢。我撤消了我的反对票,因为它现在运行良好。

以上是关于如何在函数内使用循环 - php的主要内容,如果未能解决你的问题,请参考以下文章

循环内的异步函数完成后如何调用函数?

如何在主异步循环内的同步子进程内运行多个异步循环?

如何使用ajax在函数内调用medoo 1.5?

如何在库函数中使用异步事件循环

PHP - 如何在函数内访问另一个文件中的变量

如何使用 onchange javascript 对循环内的值求和