Die Strval -Funktion ist eine integrierte Funktion in PHP, die willkürliche Wertearten in String-Typen umwandelt. Die Syntax ist wie folgt:
<span><span><span class="hljs-title function_ invoke__">strval</span></span><span>(</span><span><span class="hljs-keyword">mixed</span></span><span> </span><span><span class="hljs-variable">$var</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>
</span></span>
Wobei $ var eine beliebige Art von Daten sein kann und die Strval -Funktion eine String -Darstellung dieses Wertes zurückgibt. Wenn der Wert selbst bereits eine Zeichenfolge ist, gibt Strval den Wert direkt zurück.
Zum Beispiel:
<span><span><span class="hljs-variable">$var1</span></span><span> = </span><span><span class="hljs-number">123</span></span><span>;
</span><span><span class="hljs-variable">$var2</span></span><span> = </span><span><span class="hljs-number">3.14</span></span><span>;
</span><span><span class="hljs-variable">$var3</span></span><span> = </span><span><span class="hljs-literal">true</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strval</span></span><span>(</span><span><span class="hljs-variable">$var1</span></span><span>); </span><span><span class="hljs-comment">// Ausgabe "123"</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strval</span></span><span>(</span><span><span class="hljs-variable">$var2</span></span><span>); </span><span><span class="hljs-comment">// Ausgabe "3.14"</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strval</span></span><span>(</span><span><span class="hljs-variable">$var3</span></span><span>); </span><span><span class="hljs-comment">// Ausgabe "1"</span></span><span>
</span></span>
Die Funktion array_map wird verwendet, um die Rückruffunktion auf jedes Element des Arrays anzuwenden und ein neues Array zurückzugeben. Die Syntax ist wie folgt:
<span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(</span><span><span class="hljs-keyword">callable</span></span><span> </span><span><span class="hljs-variable">$callback</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$array</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span> ...</span><span><span class="hljs-variable">$arrays</span></span><span>): </span><span><span class="hljs-keyword">array</span></span><span>
</span></span>
$ callback ist die Rückruffunktion, und $ Array ist das Array, auf dem man betrieben werden soll. Wenn mehrere Arrays als Parameter übergeben werden, arbeitet die $ Callback -Funktion nach den Elementen dieser Arrays nacheinander.
Einfaches Beispiel:
<span><span><span class="hljs-variable">$nums</span></span><span> = [</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">4</span></span><span>];
</span><span><span class="hljs-variable">$squared</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(fn(</span><span><span class="hljs-variable">$num</span></span><span>) => </span><span><span class="hljs-variable">$num</span></span><span> * </span><span><span class="hljs-variable">$num</span></span><span>, </span><span><span class="hljs-variable">$nums</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$squared</span></span><span>); </span><span><span class="hljs-comment">// Ausgabe [1, 4, 9, 16]</span></span><span>
</span></span>
Angenommen, wir haben ein Array, das mehrere Datentypen (z. B. Ganzzahlen, schwimmende Punktzahlen, booleale Werte usw.) enthält, und wir müssen alle Elemente auf einheitliche Weise in Zeichenfolgen umwandeln. Wir können die Funktion von Array_Map und Strval verwenden, um dies zu erreichen.
Hier ist ein Beispiel, das zeigt, wie eine Reihe von gemischten Typen in eine Reihe von Zeichenfolgen umwandelt werden:
<span><span><span class="hljs-variable">$inputArray</span></span><span> = [</span><span><span class="hljs-number">123</span></span><span>, </span><span><span class="hljs-number">3.14</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>, </span><span><span class="hljs-literal">false</span></span><span>, </span><span><span class="hljs-literal">null</span></span><span>, </span><span><span class="hljs-string">"hello"</span></span><span>];
</span><span><span class="hljs-variable">$outputArray</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(</span><span><span class="hljs-string">'strval'</span></span><span>, </span><span><span class="hljs-variable">$inputArray</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$outputArray</span></span><span>);
</span></span>
Ausgabe:
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[</span><span><span class="hljs-number">0</span></span><span>] => </span><span><span class="hljs-number">123</span></span><span>
[</span><span><span class="hljs-number">1</span></span><span>] => </span><span><span class="hljs-number">3.14</span></span><span>
[</span><span><span class="hljs-number">2</span></span><span>] => </span><span><span class="hljs-number">1</span></span><span>
[</span><span><span class="hljs-number">3</span></span><span>] =>
[</span><span><span class="hljs-number">4</span></span><span>] =>
[</span><span><span class="hljs-number">5</span></span><span>] => hello
)
</span></span>
Wie oben gezeigt, wendet Array_Map Strval auf jedes Element im Array an und gibt schließlich ein neues Array zurück, in dem alle Elemente in Saiten umgewandelt wurden.
In einigen Fällen möchten wir die Elemente im Array möglicherweise mehr vorab, z . In diesem Fall können Sie zuerst das Array mit der Funktion array_filter filtern und dann den Typ mit Array_Map und Strval konvertieren.
Zum Beispiel können wir zuerst alle Werte herausfiltern, die null und falsch sind, und sie dann in eine Zeichenfolge konvertieren:
<span><span><span class="hljs-variable">$inputArray</span></span><span> = [</span><span><span class="hljs-number">123</span></span><span>, </span><span><span class="hljs-number">3.14</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>, </span><span><span class="hljs-literal">false</span></span><span>, </span><span><span class="hljs-literal">null</span></span><span>, </span><span><span class="hljs-string">"hello"</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-string">"world"</span></span><span>];
</span><span><span class="hljs-variable">$filteredArray</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_filter</span></span><span>(</span><span><span class="hljs-variable">$inputArray</span></span><span>, fn(</span><span><span class="hljs-variable">$value</span></span><span>) => </span><span><span class="hljs-variable">$value</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span> && </span><span><span class="hljs-variable">$value</span></span><span> !== </span><span><span class="hljs-literal">null</span></span><span>);
</span><span><span class="hljs-variable">$outputArray</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(</span><span><span class="hljs-string">'strval'</span></span><span>, </span><span><span class="hljs-variable">$filteredArray</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$outputArray</span></span><span>);
</span></span>
Ausgabe:
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[</span><span><span class="hljs-number">0</span></span><span>] => </span><span><span class="hljs-number">123</span></span><span>
[</span><span><span class="hljs-number">1</span></span><span>] => </span><span><span class="hljs-number">3.14</span></span><span>
[</span><span><span class="hljs-number">2</span></span><span>] => </span><span><span class="hljs-number">1</span></span><span>
[</span><span><span class="hljs-number">5</span></span><span>] => hello
[</span><span><span class="hljs-number">7</span></span><span>] => world
)
</span></span>
Auf diese Weise können wir die Ergebnisse der Array -Konvertierung flexibler steuern.
Durch die Kombination von Strval- und Array_Map -Funktionen können wir alle Elemente in einem Array effizient in Saiten umwandeln. Unabhängig von der Art der Daten, die das Array enthält, stellt Strval sicher, dass jedes Element als Zeichenfolge zurückgegeben wird. Mit Array_Map können wir das gesamte Array gleichzeitig mit präzisem Code bedienen, um sicherzustellen, dass alle Elemente konsequent verarbeitet werden. Für eine komplexe Array -Vorverarbeitung können wir den Konvertierungsprozess auch mit Funktionen wie Array_filter weiter optimieren.
Verwandte Tags:
array_map