我的 php 代码运行、加载,但没有输出
my php code runs, loads, but no outputs
我试图创建一个只生成许可证密钥的程序。这是:
<?php
function gen_code_alpha()
{
$alpha = '';
for ($i = 0; $i <= 9; $i++) {
$alpha .= $i;
}
// This attaches alphabets from 'a' to 'z' to our $alpha
for ($i = 65; $i <= 122; $i++) {
$alpha .= chr($i);
}
}
function gen_code($len = 1)
{
gen_code_alpha();
global $alpha;
$strlen = strlen($alpha);
$code = '';
for ($k = 0; $k < $len; $k++) {
$i = $rand(0, $strlen -1);// now wanna randomly generate the code
$code .= substr($alpha, $i, 1);
}
return $code;
}
function gen_license_key()
{
$licenseKey = gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(2);
}
gen_license_key();
echo $licenseKey;
但是当我尝试 运行 它时,它没有显示任何输出。我是 PHP 的新手,我不太了解调试,但我尝试了一些。我在代码中加入了一些回声,据我所知,我的 $alpha 已在 gen_code_alpha() 函数中成功生成。我还尝试在 gen_license_key() 函数中回显 $licenseKey,但没有帮助。我没有找到更多信息。
那你怎么看?
你快到了,只需更改此:
function gen_license_key()
{
// return the result instead of assigning it to a local variable
return gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(2);
}
然后你可以:
// show the key, do nothing else
echo gen_license_key();
// OR
// store the key in $licenseKey so you can do other stuff with it if needed
$licenseKey = gen_license_key();
// Now show the key
echo $licenseKey;
此外,在您的 gen_code_alpha()
函数中设置 global $alpha = '';
,或者我强烈建议遵循 "return" 函数编程模式。
在函数内部定义的变量只存在于这些函数内部。您应该 return
函数中的值,而不是设置全局变量:
function gen_license_key()
{
return gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(2);
}
然后您可以通过将变量分配给函数返回的值来获取新值:
$licenseKey = gen_license_key();
echo $licenseKey;
这是完整的代码
请注意您有错字(rand,不是 $rand)
我还建议您更改代码以避免使用全局变量,这是一种不好的做法。
<?php
function gen_code_alpha()
{
global $alpha;
$alpha = '';
for ($i = 0; $i <= 9; $i++) {
$alpha .= $i;
}
// This attaches alphabets from 'a' to 'z' to our $alpha
for ($i = 65; $i <= 122; $i++) {
$alpha .= chr($i);
}
}
function gen_code($len = 1)
{
gen_code_alpha();
global $alpha;
$strlen = strlen($alpha);
$code = '';
for ($k = 0; $k < $len; $k++) {
$i = rand(0, $strlen -1);// now wanna randomly generate the code
$code .= substr($alpha, $i, 1);
}
return $code;
}
function gen_license_key()
{
$licenseKey = gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(2);
return $licenseKey;
}
$licenseKey = gen_license_key();
echo "l:".$licenseKey;
?>
输出:
l:3X6D-gnQL-I0zJ-TRQD-Sq
如果您真的想沿着这条正确使用全局变量的道路走下去,那么您必须首先引用它们,如果您要为它们赋值,则必须尽早引用它们。此外,由于您似乎没有在这些功能之外使用 $alpha
,因此只需 return 这些值并避免 global namespace 污染。
您还有一个拼写错误,其中 $rand
不是变量名,而是函数 rand()
,已更正。
<?php
function gen_code_alpha()
{
$alpha = '';
for ($i = 0; $i <= 9; $i++) {
$alpha .= $i;
}
// This attaches alphabets from 'a' to 'z' to our $alpha
for ($i = 65; $i <= 122; $i++) {
$alpha .= chr($i);
}
return $alpha;
}
function gen_code($len = 1)
{
$alpha = gen_code_alpha();
$strlen = strlen($alpha);
$code = '';
for ($k = 0; $k < $len; $k++) {
$i = rand(0, $strlen -1);// now wanna randomly generate the code
$code .= substr($alpha, $i, 1);
}
return $code;
}
function gen_license_key()
{
global $licenseKey;
$licenseKey = gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(2);
}
gen_license_key();
echo $licenseKey;
?>
<?php
function gen_code_alpha()
{
$alpha = '';
for ($i = 0; $i <= 9; $i++) {
$alpha .= $i;
}
// This attaches alphabets from 'a' to 'z' to our $alpha
for ($i = 65; $i <= 122; $i++) {
$alpha .= chr($i);
}
}
function gen_code($len = 1)
{
gen_code_alpha();
global $alpha;
$strlen = strlen($alpha);
$code = '';
for ($k = 0; $k < $len; $k++) {
$i = rand(0, $strlen -1);// now wanna randomly generate the code
$code .= substr($alpha, $i, 1);
}
return $code;
}
function gen_license_key()
{
$licenseKey = gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(2);
return $licenseKey;
}
$licenseKey = gen_license_key();
echo $licenseKey;
?>
我们需要 return 函数中的变量,而且 $rand
不是变量 rand()
是函数。
我试图创建一个只生成许可证密钥的程序。这是:
<?php
function gen_code_alpha()
{
$alpha = '';
for ($i = 0; $i <= 9; $i++) {
$alpha .= $i;
}
// This attaches alphabets from 'a' to 'z' to our $alpha
for ($i = 65; $i <= 122; $i++) {
$alpha .= chr($i);
}
}
function gen_code($len = 1)
{
gen_code_alpha();
global $alpha;
$strlen = strlen($alpha);
$code = '';
for ($k = 0; $k < $len; $k++) {
$i = $rand(0, $strlen -1);// now wanna randomly generate the code
$code .= substr($alpha, $i, 1);
}
return $code;
}
function gen_license_key()
{
$licenseKey = gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(2);
}
gen_license_key();
echo $licenseKey;
但是当我尝试 运行 它时,它没有显示任何输出。我是 PHP 的新手,我不太了解调试,但我尝试了一些。我在代码中加入了一些回声,据我所知,我的 $alpha 已在 gen_code_alpha() 函数中成功生成。我还尝试在 gen_license_key() 函数中回显 $licenseKey,但没有帮助。我没有找到更多信息。
那你怎么看?
你快到了,只需更改此:
function gen_license_key()
{
// return the result instead of assigning it to a local variable
return gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(2);
}
然后你可以:
// show the key, do nothing else
echo gen_license_key();
// OR
// store the key in $licenseKey so you can do other stuff with it if needed
$licenseKey = gen_license_key();
// Now show the key
echo $licenseKey;
此外,在您的 gen_code_alpha()
函数中设置 global $alpha = '';
,或者我强烈建议遵循 "return" 函数编程模式。
在函数内部定义的变量只存在于这些函数内部。您应该 return
函数中的值,而不是设置全局变量:
function gen_license_key()
{
return gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(2);
}
然后您可以通过将变量分配给函数返回的值来获取新值:
$licenseKey = gen_license_key();
echo $licenseKey;
这是完整的代码
请注意您有错字(rand,不是 $rand)
我还建议您更改代码以避免使用全局变量,这是一种不好的做法。
<?php
function gen_code_alpha()
{
global $alpha;
$alpha = '';
for ($i = 0; $i <= 9; $i++) {
$alpha .= $i;
}
// This attaches alphabets from 'a' to 'z' to our $alpha
for ($i = 65; $i <= 122; $i++) {
$alpha .= chr($i);
}
}
function gen_code($len = 1)
{
gen_code_alpha();
global $alpha;
$strlen = strlen($alpha);
$code = '';
for ($k = 0; $k < $len; $k++) {
$i = rand(0, $strlen -1);// now wanna randomly generate the code
$code .= substr($alpha, $i, 1);
}
return $code;
}
function gen_license_key()
{
$licenseKey = gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(2);
return $licenseKey;
}
$licenseKey = gen_license_key();
echo "l:".$licenseKey;
?>
输出:
l:3X6D-gnQL-I0zJ-TRQD-Sq
如果您真的想沿着这条正确使用全局变量的道路走下去,那么您必须首先引用它们,如果您要为它们赋值,则必须尽早引用它们。此外,由于您似乎没有在这些功能之外使用 $alpha
,因此只需 return 这些值并避免 global namespace 污染。
您还有一个拼写错误,其中 $rand
不是变量名,而是函数 rand()
,已更正。
<?php
function gen_code_alpha()
{
$alpha = '';
for ($i = 0; $i <= 9; $i++) {
$alpha .= $i;
}
// This attaches alphabets from 'a' to 'z' to our $alpha
for ($i = 65; $i <= 122; $i++) {
$alpha .= chr($i);
}
return $alpha;
}
function gen_code($len = 1)
{
$alpha = gen_code_alpha();
$strlen = strlen($alpha);
$code = '';
for ($k = 0; $k < $len; $k++) {
$i = rand(0, $strlen -1);// now wanna randomly generate the code
$code .= substr($alpha, $i, 1);
}
return $code;
}
function gen_license_key()
{
global $licenseKey;
$licenseKey = gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(2);
}
gen_license_key();
echo $licenseKey;
?>
<?php
function gen_code_alpha()
{
$alpha = '';
for ($i = 0; $i <= 9; $i++) {
$alpha .= $i;
}
// This attaches alphabets from 'a' to 'z' to our $alpha
for ($i = 65; $i <= 122; $i++) {
$alpha .= chr($i);
}
}
function gen_code($len = 1)
{
gen_code_alpha();
global $alpha;
$strlen = strlen($alpha);
$code = '';
for ($k = 0; $k < $len; $k++) {
$i = rand(0, $strlen -1);// now wanna randomly generate the code
$code .= substr($alpha, $i, 1);
}
return $code;
}
function gen_license_key()
{
$licenseKey = gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(4) . '-' .
gen_code(2);
return $licenseKey;
}
$licenseKey = gen_license_key();
echo $licenseKey;
?>
我们需要 return 函数中的变量,而且 $rand
不是变量 rand()
是函数。