我有一个网站。在这个网站上,我试图生成随机图像。当我把它与主页上的其余HTML混合在一起时,这个代码看起来很混乱,所以我决定使用'include'调用来调用另一个带有我想要的php函数的页面。 调用函数来运行特定代码块的问题是,当它运行时,它不会识别我试图将一些全局变量放在顶部,因此当它输出一个数字时,没有一个因为它从未有过。
有人可以告诉我如何解决这个问题,以便我可以使用这些变量以便它们具有我想要的初始值吗?
<?php
$total1 = "4";
$start = "1";
$random1 = mt_rand($start, $total1);
$total2 = "3";
$random2 = mt_rand($start, $total2);
function randomImage1()
{
$file_type = ".jpg";
$image_folder = "Images/Picturebar";
$image_name = $random1 . $file_type;
echo ("<img src=\"$image_folder/$image_name\" alt=\"$image_name\" width=\"204px\" height=\"100px\" />");
echo("$random1");
}
function randomImage2()
{
$file_type = ".jpg";
$image_folder = "Images/Picturebar";
if ($random2 == $random1) {
$random2 = $random2 + 1;
}
$image_name = $random2 . $file_type;
echo "<img src=\"$image_folder/$image_name\" alt=\"$image_name\" width=\"204px\" height=\"100px\" />";
echo("$random2");
}
?>
答案 0 :(得分:0)
您可以在包含的文件前添加此行:
global $total1, $start, $random1, $total2, $random2;
这将使以下变量全局甚至包含在函数中。
答案 1 :(得分:0)
你必须将变量传递给函数或在函数中将它们声明为全局...我强烈建议传递它们......
function randomImage1($random1)
{
$file_type = ".jpg";
$image_folder = "Images/Picturebar";
$image_name = $random1 . $file_type;
echo ("<img src=\"$image_folder/$image_name\" alt=\"$image_name\" width=\"204px\" height=\"100px\" />");
echo("$random1");
}
或者这个:
function randomImage1()
{
global $random1;
$file_type = ".jpg";
$image_folder = "Images/Picturebar";
$image_name = $random1 . $file_type;
echo ("<img src=\"$image_folder/$image_name\" alt=\"$image_name\" width=\"204px\" height=\"100px\" />");
echo("$random1");
}
我怀疑这里有人会告诉你声明全局var。最好把它传递给函数。
答案 2 :(得分:0)
要使用在函数名称空间外声明的变量,请使用global
关键字:
$var = 1;
function square()
{
global $var; // import this variable
return $var * $var;
}
请注意,您应该考虑使用函数参数。
答案 3 :(得分:0)
如果值永远不会改变,请使用define,以定义常量,例如:
<?php define('START', '1') ?>
然后在您的代码中,您可以这样调用它:
$start = START
这只是一个例子,您可以使用START,而不必将其添加到另一个变量。
答案 4 :(得分:0)
您需要在函数内部全局引用变量,或者更好的是,将它们作为参数传递:
// pass $random1 as a parameter
function randomImage1($random1)
{
$file_type = ".jpg";
$image_folder = "Images/Picturebar";
$image_name = $random1 . $file_type;
echo ("<img src=\"$image_folder/$image_name\" alt=\"$image_name\" width=\"204px\" height=\"100px\" />");
echo("$random1");
}
// Pass $random2 as a parameter
function randomImage2($random2)
{
$file_type = ".jpg";
$image_folder = "Images/Picturebar";
if ($random2 == $random1) {
$random2 = $random2 + 1;
}
$image_name = $random2 . $file_type;
echo "<img src=\"$image_folder/$image_name\" alt=\"$image_name\" width=\"204px\" height=\"100px\" />";
echo("$random2");
}
这也可以使用函数内的global
关键字来完成,但首选传递参数:
function randomImage1($random1)
{
// Identify $random1 as the existing global
global $random1;
// Or use $GLOBALS['random1']
$file_type = ".jpg";
$image_folder = "Images/Picturebar";
$image_name = $random1 . $file_type;
echo ("<img src=\"$image_folder/$image_name\" alt=\"$image_name\" width=\"204px\" height=\"100px\" />");
echo("$random1");
}