[JAVA] Ich habe nach PHP-Variablen gesucht

Prämisse (was Sie lernen)

――Ich habe ein paar Monate Java gelernt

Was ich nachgeschlagen habe

Der folgende Inhalt stammt aus ** PHP-Handbuch **.

<?php
$a = 1;
include'b.inc '; / * $ a kann auch für Dateien verwendet werden, die von include oder require gelesen werden. * /
?>

Die Variable $ a ist auch im enthaltenen Skript b.inc verfügbar

<?php
$ a = 1; / * Globaler Bereich * /

function test()
{ 
echo $ a; / * Verweis auf lokale Bereichsvariable * /
} 

test();
?>

Wenn test () mit ↑ ausgeführt wird, wird nichts angezeigt. (Weil es einen anderen Umfang hat.)


<?php
$a = 1;
$b = 2;

function Sum() 
{
   global $a, $b;
   $b = $a + $b;
} 

Sum();
echo $b;  /*$b=3*/
?>

↑ Mein Verständnis: Ein Slogan für die Verwendung des definierten globalen Bereichs?

・ $ GLOBALS kann anstelle des globalen Schlüsselworts verwendet werden

<?php
$a = 1;
$b = 2;

function Sum() 
{
    $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
} 

Sum();
echo $b;
?>

Es scheint, dass $ GLOBALS super global ist. was ist das. .. ..

$GLOBALS (PHP 4, PHP 5, PHP 7)

$ GLOBALS - Ein Verweis auf alle im globalen Bereich verfügbaren Variablen

Beschreibung Ein assoziatives Array, das Verweise auf alle Variablen enthält, die derzeit im globalen Bereich des Skripts definiert sind. Der Variablenname ist der Schlüssel zum Array.

<?php
function test() {
   $foo = "local variable";

   echo '$foo in global scope: ' . $GLOBALS["foo"] . "\n";
   echo '$foo in current scope: ' . $foo . "\n";
}

$foo = "Example content";
test();
?>

Ausgabeergebnis
$foo in global scope: Example content
$foo in current scope: local variable

Mit anderen Worten, wenn Sie es der globalen Variablen "$ foo" zuweisen, wird es auf alle "$ GLOBALS [" foo "]" angewendet, unabhängig davon, ob es in der Methode enthalten ist oder nicht. Ist der Wert zugewiesen? (In Java ist ein Setter erforderlich, wenn privat angehängt ist, daher befürchte ich, dass er leicht zugewiesen werden kann, ...)

・ Super Global erfordert keine globale Deklaration, andernfalls ist eine globale Deklaration erforderlich

<?php
function test_global()
{
// Die meisten vordefinierten Variablen sind nicht "super", sondern in einer Funktion
// Sie müssen 'global' aufrufen, um es im lokalen Bereich zu aktivieren.
   global $HTTP_POST_VARS;
   
   echo $HTTP_POST_VARS['name'];
   
// Super global ist in jedem Bereich gültig
// Keine Notwendigkeit, 'global' anzurufen.
// Super Global ist in PHP 4.1.0 und höher verfügbar.
// HTTP_POST_VARS ist jetzt veraltet.
   echo $_POST['name'];
}
?>

-Statische Variable (statisch)

Statische Variablen existieren nur im lokalen Funktionsbereich, verlieren jedoch nicht ihren Wert, wenn die Programmausführung außerhalb dieses Bereichs liegt.

<?php
function test()
{
   static $a = 0;
   echo $a;
   $a++;
}
?>

↑ Ohne Statik wird es bei jedem Aufruf von test () mit $ a = 0 initialisiert. Wenn mit static stat () aufgerufen wird, erhöht $ a ++ den Wert von $ a.

・ Rekursive Funktion

<?php
function test()
{
   static $count = 0;

   $count++;
   echo $count;
   if ($count < 10) {
       test();
   }
   $count--;
} / * $ count erhöht sich auf 1,2,3, ..., 9,10 * /
?>

↑ Wenn hier keine statische Aufladung vorhanden ist, wird sie jedes Mal mit "$ count = 0" initialisiert.

Achten Sie übrigens darauf, wie statische Variablen deklariert werden! ** ** **

<?php
function foo(){
statisch $ int = 0; // richtig
statisch $ int = 1 + 2; // Richtig (aber nur für PHP 5.6 und höher)
statisch $ int = sqrt (121); // Falsch (mit Funktion)

   $int++;
   echo $int;
}
?>

Zusammenfassung

Ich habe nach Variablen gesucht, aber ich habe es unerwartet verstanden. Es erscheint jedoch verwirrend, wenn Sie den Bereichsbereich nicht immer kennen. Ich weiß nicht, ob ich PHP verwenden werde. .. ..

Ich werde weiterhin auf meine eigene Weise schreiben.

Recommended Posts

Ich habe nach PHP-Variablen gesucht
Ich habe nach URL-Codierung gesucht
Ich habe in Ruby's Gem nach CSRF gesucht
Ich habe PHP- und Java-Konstruktoren verglichen
Ich hoffe aufrichtig, dass Stream # abgelehnt wird