包含在php文件中的全局变量

包含在php文件中的全局变量,php,function,random,include,Php,Function,Random,Include,我有一个网站。在这个网站上,我试图生成随机图像。当我把它与主页上其余的HTML混合在一起时,它的代码看起来很混乱,所以我决定使用一个“include”调用调用另一个包含我想要的php函数的页面。 调用函数来运行特定代码块的问题是,当它运行时,它没有意识到我试图将一些全局变量放在顶部,因此当它输出一个数字时,没有一个,因为它从来没有一个 有谁能告诉我如何解决这个问题,这样我就可以使用变量,使它们具有我想要的初始值 <?php $total1 = "4"; $start = "1"; $ran

我有一个网站。在这个网站上,我试图生成随机图像。当我把它与主页上其余的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");
}
?>

您可以在包含的文件前面添加此行:

global $total1, $start, $random1, $total2, $random2;

这将使以下变量成为全局变量,甚至包括在函数中。

您必须将变量传递给函数或在函数中声明为全局变量。。。我强烈建议通过他们

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");
}
函数randomImage1($random1)
{
$file_type=“.jpg”;
$image\u folder=“Images/Picturebar”;
$image\u name=$random1.$file\u type;
回声(“”);
回声($1);
}
或者这个:

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");
}
函数randomImage1()
{
全球1美元;
$file_type=“.jpg”;
$image\u folder=“Images/Picturebar”;
$image\u name=$random1.$file\u type;
回声(“”);
回声($1);
}

我怀疑这里的任何人会告诉你申报全球风险价值。最好将其传递给函数。

若要使用在函数名称空间之外声明的变量,请使用
global
关键字:

$var = 1;

function square()
{
    global $var; // import this variable

    return $var * $var;   
}

注意,您应该考虑使用函数参数。

< P>如果值从不更改使用定义,则定义一个常量,例如:

然后在代码中可以这样调用它:
$start=start


这只是一个示例,您可以使用START,而不必将其添加到另一个变量。

您需要在函数中全局引用变量,或者更好地将其作为参数传递:

// 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
指令,例如
global$var无论你在scope.gee中需要它的地方,我都会得到纠正。似乎每个人都在建议环球。当您在函数中声明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");
}