глобальные переменные во включенном файле php - PullRequest
0 голосов
/ 10 декабря 2011

У меня есть сайт.На этом сайте я пытаюсь генерировать случайные изображения.Код для этого выглядел грязно, когда я смешал его с остальным HTML на главной странице, поэтому я решил использовать вызов include для вызова другой страницы с нужными мне функциями php.Проблема с вызовом функций для запуска определенных блоков кода состоит в том, что при запуске он не распознает, что я пытался поместить некоторые глобальные переменные в верхнюю часть, поэтому, когда он выводит число, его нет,его никогда не было.

Кто-нибудь может сказать мне, как я могу это исправить, чтобы я мог использовать переменные так, чтобы они имели начальные значения, которые я хотел бы?

Ответы [ 5 ]

0 голосов
/ 10 декабря 2011

Вам необходимо ссылаться на переменные глобально внутри функций, или, что еще лучше, передавать их как параметры:

// 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");
}
0 голосов
/ 10 декабря 2011

Если значение никогда не изменяется, используйте define, чтобы определить константу, такую ​​как: <?php define('START', '1') ?>

Тогда в вашем коде вы можете назвать это так: $start = START

Это был просто пример, вы можете просто использовать START, вам не нужно добавлять его в другую переменную.

0 голосов
/ 10 декабря 2011

Вы должны либо передать переменные в функции, либо объявить их как глобальные в функции ... Я настоятельно рекомендую передать их ...

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");
}

Я сомневаюсь, что кто-нибудь здесь скажет вам объявить глобальную переменную.лучше передать его функции.

0 голосов
/ 10 декабря 2011

Чтобы использовать переменную, объявленную вне пространства имен функции, используйте ключевое слово global:

$var = 1;

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

    return $var * $var;   
}

Обратите внимание, что вместо этого следует рассмотреть возможность использования параметров функции.

0 голосов
/ 10 декабря 2011

Вы можете добавить эту строку перед включенным файлом:

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

Это сделает следующие переменные глобальными, даже если они включены в функцию.

...