Detaillierte Erläuterung der Beispiele für Variablenvariablen in PHP

怪我咯
Freigeben: 2023-03-10 20:52:01
Original
2162 Leute haben es durchsucht

Variable Variable ist eine Variable, deren Name dynamisch festgelegt und verwendet werden kann. Die Syntaxform ist eine spezielle PHP-Syntax, die in anderen Sprachen selten vorkommt. In diesem Artikel erhalten Sie eine Zusammenfassung von PHP-Variablenvariablen, die Sie gemeinsam lernen können 🎜>

Die sogenannte Variablenvariable bedeutet, dass der Variablenname einer Variablen dynamisch festgelegt und verwendet werden kann. Die Syntaxform ist die spezielle Syntax von PHP, die in anderen Sprachen selten vorkommt

Manchmal ist es sehr praktisch, variable Variablennamen zu verwenden. Das heißt, der Variablenname einer Variablen kann dynamisch festgelegt und verwendet werden. Eine gewöhnliche Variable wird durch Deklaration festgelegt, zum Beispiel:

<?php
$a = &#39;hello&#39;;
?>
Nach dem Login kopieren
Eine variable Variable erhält den Wert einer gewöhnlichen Variablen als Variablennamen der Variablenvariablen. Im obigen Beispiel kann „Hallo“ als Variablenvariable verwendet werden, nachdem zwei Dollarzeichen ($) verwendet wurden. Beispiel:

<?php
$$a = &#39;world&#39;;
?>
Nach dem Login kopieren
Zu diesem Zeitpunkt sind zwei Variablen definiert: Der Inhalt von $a ist „Hallo“ und der Inhalt von $hello ist „Welt“. Daher gibt die folgende Anweisung:

<?php
echo "$a ${$a}";
?>
Nach dem Login kopieren
genau das gleiche Ergebnis aus wie die folgende Anweisung:

<?php
echo "$a $hello";
?>
Nach dem Login kopieren
Beide geben Folgendes aus: Hallo Welt.

Um veränderliche Variablen mit Arrays zu verwenden, muss eine Mehrdeutigkeit behoben werden. Beim Schreiben von $$a[1] muss der Parser also wissen, ob er $a[1] als Variable oder $$a als Variable möchte und die Variable mit dem Indexwert [1] extrahiert. Die Syntax zur Lösung dieses Problems besteht darin, ${$a[1]} für den ersten Fall und ${$a}[1] für den zweiten Fall zu verwenden.

Auf Klasseneigenschaften kann auch über veränderbare Eigenschaftsnamen zugegriffen werden. Veränderbare Eigenschaftsnamen werden im Rahmen des Aufrufs aufgelöst. Beispielsweise wird für den Ausdruck $foo->$bar $bar im lokalen Bereich analysiert und sein Wert als Eigenschaftsname von $foo verwendet. Das Gleiche gilt für $bar, wenn es sich um eine Array-Zelle handelt.

Sie können auch geschweifte Klammern verwenden, um Attributnamen klar abzugrenzen. Am nützlichsten, wenn sich die Eigenschaft in einem Array befindet oder der Eigenschaftsname mehrere Teile enthält oder der Eigenschaftsname unzulässige Zeichen enthält (z. B. aus json_decode() oder SimpleXML).

Beispiel Nr. 1 Beispiel für ein Variablenattribut

<?php
class foo {
  var $bar = &#39;I am bar.&#39;;
  var $arr = array(&#39;I am A.&#39;, &#39;I am B.&#39;, &#39;I am C.&#39;);
  var $r  = &#39;I am r.&#39;;
}
$foo = new foo();
$bar = &#39;bar&#39;;
$baz = array(&#39;foo&#39;, &#39;bar&#39;, &#39;baz&#39;, &#39;quux&#39;);
echo $foo->$bar . "\n";
echo $foo->$baz[1] . "\n";
$start = &#39;b&#39;;
$end  = &#39;ar&#39;;
echo $foo->{$start . $end} . "\n";
$arr = &#39;arr&#39;;
echo $foo->$arr[1] . "\n";
echo $foo->{$arr}[1] . "\n";
?>
Nach dem Login kopieren
Die obige Routine gibt Folgendes aus:

I am bar.
I am bar.
I am bar.
I am r.
I am B.
Nach dem Login kopieren

Beispiel Nr. 2 Ja Beispiel von variablen Attributen

<?php
 //You can even add more Dollar Signs
 $Bar = "a";
 $Foo = "Bar";
 $World = "Foo";
 $Hello = "World";
 $a = "Hello";
 $a; //Returns Hello
 $$a; //Returns World
 $$$a; //Returns Foo
 $$$$a; //Returns Bar
 $$$$$a; //Returns a
 $$$$$$a; //Returns Hello
 $$$$$$$a; //Returns World
 //... and so on ...//
?>
Nach dem Login kopieren

Beispiel #3 Beispiel von variablen Attributen

<?php
// Given these variables ...
$nameTypes  = array("first", "last", "company");
$name_first  = "John";
$name_last  = "Doe";
$name_company = "PHP.net";
// Then this loop is ...
foreach($nameTypes as $type)
 print ${"name_$type"} . "\n";
// ... equivalent to this print statement.
print "$name_first\n$name_last\n$name_company\n";
?>
Nach dem Login kopieren
Die obige Routine gibt Folgendes aus:

John
Doe
PHP.net
John
Doe
PHP.net
Nach dem Login kopieren
Zuerst müssen wir eine PHP-Funktion schreiben, um die Summe zweier Zahlen zu berechnen, die wie folgt geschrieben werden kann:

/**
 *计算两个数的和,并返回计算的结果
 * @param number $a
 * @param number $b
 * @return number
 */
function sum($a, $b){
  return $a + $b;
}
Nach dem Login kopieren
In ähnlicher Weise können wir die Summe dreier Zahlen berechnen wie folgt geschrieben werden:

/**
 *计算两个或三个数的和,并返回计算的结果
 * @param number $a
 * @param number $b
 * @return number $c 该参数可以不传入值,默认为0
 */
function sum($a, $b, $c = 0){
  return $a + $b + $c;
}
Nach dem Login kopieren
Wenn wir an diesem Punkt die Summe einer beliebigen Zahl berechnen müssen, wie müssen wir dann eine PHP-Funktion schreiben?

Natürlich können Sie erwägen, ein Array als übergebenen Parameter der Funktion zu verwenden, um eine solche Funktion zu erreichen:

/**
 *计算任意多个数的和,函数参数params必须为array类型
 * @param array params
 */
function sum($params){
  $total = 0;
  foreach ($params as $i){
    $total += $i;
  }
  return $total;
}
Nach dem Login kopieren
Nun, an diesem Ansatz ist in der Tat nichts auszusetzen, denn in

Variable Parameter Während des Programmentwicklungsprozesses vor der Geburt von 🎜> wurden Arrays oder ähnliche Sammlungen verwendet, um sie darzustellen, wenn eine beliebige Anzahl von Parametern übergeben werden musste. Erscheint diese Art der Übermittlung jedoch nicht klar und intuitiv genug? Als PHP-Programmierer sollten Sie wissen, dass es in PHP eine Funktion var_dump() zum Anzeigen detaillierter Informationen zu Variablen gibt, zum Beispiel:

$age = 18;
var_dump($age); //显示变量$age的详细信息
Nach dem Login kopieren
Wenn wir Informationen zu mehreren Variablen anzeigen müssen, können wir dies auch tun Verwenden Sie es so:

$name = &#39;张三&#39;;
$age = 18;
$gender = true;
var_dump($name, $age, $gender);
Nach dem Login kopieren
Wir wissen, dass var_dump() eine beliebige Anzahl von Variablen gleichzeitig empfangen kann und nicht in Form eines Arrays übergeben werden muss ist intuitiver und eleganter. Diese Form der Übergabe beliebig vieler Parameter nennt man variable Parameter. Natürlich kann unsere sum()-Funktion auch auf diese Weise implementiert werden:

/**
 *计算任意多个数的和,并返回计算后的结果
 */
function sum(){ //这里的括号中没有定义任何参数
  $total = 0;
  //使用func_get_args()来获取当前函数的所有实际传递参数,返回值为array类型
  $varArray = func_get_args();
  foreach ($varArray as $var){
    $total += $var;
  }
  return $total;
}
/*****下面是调用示例*****/
echo sum(1, 3, 5); //计算1+3+5
echo sum(1, 2); //计算1+2
echo sum(1, 2, 3, 4);  //计算1+2+3+4
Nach dem Login kopieren
Wie im obigen Beispiel gezeigt, verwenden Sie einfach die in PHP

integrierte Funktion func_get_args() in Mit der aktuellen Funktion können wir beim Aufruf der Funktion das tatsächliche Parameterarray erhalten, das übergeben wird, und müssen dann nur noch das Parameterarray verarbeiten.

Hinweis 1: 1. Wenn beim Aufruf keine Parameter übergeben werden, dann gibt die Funktion func_get_args() immer noch einen Array-Typ zurück, aber ein leeres Array (das Array enthält kein Element). ). 2.func_get_args() kann nur innerhalb einer Funktion aufgerufen werden, andernfalls wird eine Warnmeldung angezeigt. 3. Die Funktion func_get_args() kann einen Indexparameter empfangen, um den Parameter am angegebenen Index im Parameterarray abzurufen. Wenn Sie beispielsweise das erste übergebene Argument erhalten möchten, können Sie Folgendes aufrufen: func_get_args(1).

4. Darüber hinaus können Sie in der Funktion auch func_num_args() aufrufen, das die Anzahl der im aktuellen Funktionsaufruf übergebenen Parameter zurückgeben kann.

Hinweis 2: Die Implementierung von PHP-Variablenparametern ist der Implementierung von JavaScript-Variablenparametern sehr ähnlich. PHP verwendet zur Implementierung die integrierte Funktion func_get_args() und JavaScriptverwendet die FunktionEingebaute Variablenargumente, um dies zu erreichen.

备注3:在最后的sum()函数代码中,sum()函数没有定义任何形式参数,所以调用该函数时可以传入0、1、2~n个参数的。不过,在一般情况下,计算和至少需要两个数来参与计算。因此,你可以在sum()函数的定义处,定义两个形式参数,例如:sum($a, $b),其他代码保持不变。这样,在调用该函数时,就必须传入至少两个参数。

备注4:由于PHP已经内置了计算数组中所有元素的和的函数array_sum(),因此上述代码的最终版本如下:

/**
 *计算任意多个数的和,并返回计算后的结果
 */
function sum($a, $b){
  return array_sum(func_get_args());
}
Nach dem Login kopieren


Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Beispiele für Variablenvariablen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!