Php 为什么这个功能会失败?
我试图理解为什么这个函数不起作用。有人能告诉我发生了什么事吗Php 为什么这个功能会失败?,php,Php,我试图理解为什么这个函数不起作用。有人能告诉我发生了什么事吗 function API() { $seed = str_split(md5(rand(0000000,9999999))); $rand = array_rand($seed, 10); $convert = array_map(function($n){ global $seed; return $seed[$n]; }
function API() {
$seed = str_split(md5(rand(0000000,9999999)));
$rand = array_rand($seed, 10);
$convert = array_map(function($n){
global $seed;
return $seed[$n];
},$rand);
$var1 = implode('',$convert);
$seed = str_split(md5(rand(0000000,9999999)));
$rand = array_rand($seed, 10);
$convert = array_map(function($n){
global $seed;
return $seed[$n];
},$rand);
$var2 = implode('',$convert);
$seed = str_split(md5(rand(0000000,9999999)));
$rand = array_rand($seed, 10);
$convert = array_map(function($n){
global $seed;
return $seed[$n];
},$rand);
$var3 = implode('',$convert);
$NewRecordLocatorID = $var1 . '-' . $var2 . '-' . $var3;
return $NewRecordLocatorID;
}
此函数将仅返回--
与仅仅在函数外回显值相比?这需要在课堂上吗
$seed = str_split(md5(rand(0000000,9999999)));
$rand = array_rand($seed, 10);
$convert = array_map(function($n){
global $seed;
return $seed[$n];
},$rand);
$var1 = implode('',$convert);
$seed = str_split(md5(rand(0000000,9999999)));
$rand = array_rand($seed, 10);
$convert = array_map(function($n){
global $seed;
return $seed[$n];
},$rand);
$var2 = implode('',$convert);
$seed = str_split(md5(rand(0000000,9999999)));
$rand = array_rand($seed, 10);
$convert = array_map(function($n){
global $seed;
return $seed[$n];
},$rand);
$var3 = implode('',$convert);
$NewRecordLocatorID = $var1 . '-' . $var2 . '-' . $var3;
echo $NewRecordLocatorID;
上述操作将返回所需的结果。这是因为您如何调用
全局。改变这些:
$convert = array_map(function($n){
global $seed;
return $seed[$n];
},$rand);
为此:
$convert = array_map(function($n) use ($seed){
return $seed[$n];
},$rand);
瞧,它起作用了。您正在尝试从全局范围获取变量
global $seed;
但是这个变量在函数API
的局部范围内。
您必须像这里这样使用和
$convert = array_map(function($n) use($seed){
return $seed[$n];
},$rand);
或者:
$id = sprintf("%s-%s-%s", bin2hex(random_bytes(5)), bin2hex(random_bytes(5)), bin2hex(random_bytes(5)));
我假设您正在执行echoapi()代码>因为如果执行此操作,函数将生成一个结果