如何关于我的代码我不能调用函数内联函数
这是我的代码:
function antus(){
global $vidi;
$vidi = random_int(100, 999);
}
function bntus(){
global $hexa;
antus();
$hexa = 5 * $vidi;
echo $hexa;
}
bntus();
谢谢
答案 0 :(得分:0)
你在两个函数中都缺少回报而不需要全局
function antus(){
$vidi = random_int(100, 999);
return $vidi;
}
function bntus(){
$v = antus();
$hexa = 5 * $v;
return $hexa;
}
$a = bntus();
echo $a;
答案 1 :(得分:0)
虽然使用全局变量而不是参数和回报的风格很差,但我会告诉你如何做到这一点。
您不需要global $hexa
,因为您从不在函数之外使用该变量。但是您需要将global $vidi
放在bntus()
中,以便它可以访问该变量。
此外,获取随机整数的函数名称为rand()
,而不是random_int()
。
function antus(){
global $vidi;
$vidi = rand(100, 999);
}
function bntus(){
global $vidi;
antus();
$hexa = 5 * $vidi;
echo $hexa;
}
bntus();
答案 2 :(得分:0)
首先,您的代码根本不运行,因为它无法编译。 PHP语句以;
结尾(但在您的代码中,它在几个地方都丢失了。)
格式正确且没有语法错误,函数bntus()
的代码应如下所示:
function bntus()
{
global $hexa;
antus();
$hexa = 5 * $vidi;
echo $hexa;
}
现在它会运行,但它不会产生您期望的结果,因为变量$vidi
未初始化。
如果您认为函数antus()
的调用会在$vidi
中放置一些随机值,那么您就错了。函数antus()
在全局变量$vidi
中放置一个值。函数bntus()
中无法访问该变量;它使用具有相同名称的未初始化的本地变量。
阅读PHP中的scope of variables。
在函数$vidi
中将global
声明为bntus()
会产生预期的结果,但使用全局变量是一种非常糟糕的编程技术。它现在已经过时了大约40 - 50年,因为它使程序难以开发和维护。
更好的方法是让函数return
得到它们计算的值:
function antus()
{
return random_int(100, 999);
}
function bntus()
{
return 5 * antus();
}
echo(bntus());
还有一件事:您没有发布函数random_int()
的代码,但是如果它的名称是什么,那么您不需要用户函数。 PHP已经提供了rand()
函数,当使用两个整数参数调用时,它会从由两个输入值(包括它们)限定的区间返回一个随机整数。
这意味着来电rand(100, 999)
会返回一个随机整数$n
,100
< = $n
< = 999
。