/ / globale Variablen in der enthaltenen PHP-Datei - PHP, Funktion, Zufall, Include

globale Variablen in der enthaltenen PHP-Datei - PHP, Funktion, Zufall, Include

Ich habe eine Website. Auf dieser Website versuche ich, zufällige Bilder zu generieren. Der Code dafür sah chaotisch aus, als ich ihn mit dem Rest des HTML-Codes auf der Hauptseite gemischt hatte. Daher entschied ich mich, einen "Include" -Aufruf zu verwenden, um eine andere Seite mit den gewünschten PHP-Funktionen aufzurufen. Das Problem beim Aufrufen von Funktionen zum Ausführen der spezifischen Codeblöcke besteht darin, dass beim Ausführen nicht erkannt wird, dass ich versucht habe, einige globale Variablen an die Spitze zu setzen. Wenn also eine Zahl ausgegeben wird, gibt es keine, weil es hatte nie einen.

Kann mir jemand sagen, wie ich das beheben kann, damit ich die Variablen so verwenden kann, dass sie die Anfangswerte haben, die ich möchte?

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

Antworten:

0 für die Antwort № 1

Sie müssen die Variablen global innerhalb der Funktionen referenzieren oder besser noch als Parameter übergeben:

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

Dies könnte auch mit dem gemacht werden global Schlüsselwort innerhalb der Funktion, aber die Übergabe von Parametern wie oben wird bevorzugt:

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 für die Antwort № 2

Sie können diese Zeile vor der enthaltenen Datei hinzufügen:

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

Dadurch werden die folgenden globalen Variablen sogar in eine Funktion aufgenommen.


0 für die Antwort № 3

Sie müssen die Variablen entweder an die Funktionen übergeben oder sie in der Funktion als global deklarieren ... Ich empfehle dringend, sie zu übergeben ...

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

oder dieses:

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

Ich bezweifle, dass Ihnen hier jemand sagen wird, dass Sie die globale Variable deklarieren sollen. besser, es an die Funktion zu übergeben.


0 für die Antwort № 4

Verwenden Sie die, um eine außerhalb des Namespace der Funktion deklarierte Variable zu verwenden global Stichwort:

$var = 1;

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

return $var * $var;
}

Beachten Sie, dass Sie stattdessen Funktionsparameter verwenden sollten.


0 für die Antwort № 5

Wenn sich der Wert nie ändert, verwenden Sie define, um eine Konstante zu definieren, z. <?php define("START", "1") ?>

Dann können Sie es in Ihrem Code so nennen: $start = START

Das war nur ein Beispiel, Sie können einfach START verwenden, ohne es einer anderen Variablen hinzufügen zu müssen.