Aktueller Standort: Startseite> Neueste Artikel> Wie kann man Null- oder Nullwerte effektiv behandeln, wenn die Kompaktfunktion von PHP verwendet wird?

Wie kann man Null- oder Nullwerte effektiv behandeln, wenn die Kompaktfunktion von PHP verwendet wird?

gitbox 2025-08-22

1. Grundnutzung von Compact () -Funktion

Die grundlegende Syntax der Kompact () -Funktion lautet wie folgt:

 <span><span><span class="hljs-title function_ invoke__">compact</span></span><span>(...</span><span><span class="hljs-variable">$var_names</span></span><span>)
</span></span>

Der Parameter $ var_names ist eine oder mehrere Zeichenfolgen, die den Namen der Variablen darstellen, die in ein Array konvertiert werden soll. Der Rückgabewert ist ein assoziatives Array, das den variablen Namen und seinen entsprechenden Wert enthält. Wenn eine Variable undefiniert oder ihr Wert null ist, enthält Compact () die Variable weiterhin in das zurückgegebene Array.

Zum Beispiel:

 <span><span><span class="hljs-variable">$name</span></span><span> = </span><span><span class="hljs-string">"John"</span></span><span>;
</span><span><span class="hljs-variable">$age</span></span><span> = </span><span><span class="hljs-number">25</span></span><span>;
</span><span><span class="hljs-variable">$city</span></span><span> = </span><span><span class="hljs-string">"New York"</span></span><span>;

</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">compact</span></span><span>(</span><span><span class="hljs-string">"name"</span></span><span>, </span><span><span class="hljs-string">"age"</span></span><span>, </span><span><span class="hljs-string">"city"</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span></span>

Ausgabe:

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [name] =&gt; John
    [age] =&gt; </span><span><span class="hljs-number">25</span></span><span>
    [city] =&gt; New York
)
</span></span>

In diesem Beispiel packt die Funktion compact () erfolgreich drei Variablen in ein Array.

2. wie man den Nullwert durch compact () umgeht

Die Kompact () -Funktion von PHP enthält eine Variable mit einem NULL -Wert im zurückgegebenen Array, und der entsprechende Wert im Array ist null .

Zum Beispiel:

 <span><span><span class="hljs-variable">$name</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>;
</span><span><span class="hljs-variable">$age</span></span><span> = </span><span><span class="hljs-number">25</span></span><span>;
</span><span><span class="hljs-variable">$city</span></span><span> = </span><span><span class="hljs-string">"New York"</span></span><span>;

</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">compact</span></span><span>(</span><span><span class="hljs-string">"name"</span></span><span>, </span><span><span class="hljs-string">"age"</span></span><span>, </span><span><span class="hljs-string">"city"</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span></span>

Ausgabe:

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [name] =&gt; 
    [age] =&gt; </span><span><span class="hljs-number">25</span></span><span>
    [city] =&gt; New York
)
</span></span>

Wie oben gezeigt, ist der Wert des Namens null , erscheint jedoch immer noch im Array und der Wert ist null .

3.. Filtern Sie Null- oder Nullwerte heraus

In einigen Szenarien möchten wir keine Null- oder Nullwerte im zurückgegebenen Array. Um diese Situation besser zu bewältigen, können die Ergebnisse von compact () über die Funktion array_filter () filtriert werden. Array_filter () kann Nullwerte in einem Array entfernen (einschließlich Null , leerer String "" usw.).

 <span><span><span class="hljs-variable">$name</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>;
</span><span><span class="hljs-variable">$age</span></span><span> = </span><span><span class="hljs-number">25</span></span><span>;
</span><span><span class="hljs-variable">$city</span></span><span> = </span><span><span class="hljs-string">"New York"</span></span><span>;

</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_filter</span></span><span>(</span><span><span class="hljs-title function_ invoke__">compact</span></span><span>(</span><span><span class="hljs-string">"name"</span></span><span>, </span><span><span class="hljs-string">"age"</span></span><span>, </span><span><span class="hljs-string">"city"</span></span><span>));
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span></span>

Ausgabe:

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [age] =&gt; </span><span><span class="hljs-number">25</span></span><span>
    [city] =&gt; New York
)
</span></span>

Durch Array_Filter () wird der Name des Nullwerts aus dem Ergebnis entfernt und am Ende nur das gültige Alter und die Stadt erhalten.

4. Anpassen der Filterregeln anpassen

Wenn Sie die Filterregeln genauer steuern möchten (z. B. das Filtern von leeren Zeichenfolgen oder Nullen aus dem Ergebnis), können Sie eine benutzerdefinierte Rückruffunktion in Array_filter () übergeben.

Zum Beispiel:

 <span><span><span class="hljs-variable">$name</span></span><span> = </span><span><span class="hljs-string">""</span></span><span>;
</span><span><span class="hljs-variable">$age</span></span><span> = </span><span><span class="hljs-number">25</span></span><span>;
</span><span><span class="hljs-variable">$city</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>;

</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_filter</span></span><span>(</span><span><span class="hljs-title function_ invoke__">compact</span></span><span>(</span><span><span class="hljs-string">"name"</span></span><span>, </span><span><span class="hljs-string">"age"</span></span><span>, </span><span><span class="hljs-string">"city"</span></span><span>), function(</span><span><span class="hljs-variable">$value</span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$value</span></span><span> !== </span><span><span class="hljs-literal">null</span></span><span> &amp;&amp; </span><span><span class="hljs-variable">$value</span></span><span> !== </span><span><span class="hljs-string">""</span></span><span>;
});

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span></span>

Ausgabe:

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [age] =&gt; </span><span><span class="hljs-number">25</span></span><span>
)
</span></span>

In diesem Beispiel stellt die Rückruffunktion sicher, dass nur Werte von Nicht- Null- und nicht leeren Zeichenfolgen im endgültigen Array aufbewahrt werden.

5. wie man mit undefinierten Variablen umgeht

Wenn bestimmte Variablen in compact () als undefined übergeben werden, werden sie automatisch ignoriert und werden im zurückgegebenen Array nicht angezeigt. Wenn jedoch ein variabler Wert null ist, erscheint er immer noch im Ergebnis.

 <span><span><span class="hljs-variable">$age</span></span><span> = </span><span><span class="hljs-number">25</span></span><span>;
</span><span><span class="hljs-variable">$city</span></span><span> = </span><span><span class="hljs-string">"New York"</span></span><span>;

</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">compact</span></span><span>(</span><span><span class="hljs-string">"name"</span></span><span>, </span><span><span class="hljs-string">"age"</span></span><span>, </span><span><span class="hljs-string">"city"</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span></span>

Ausgabe:

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [age] =&gt; </span><span><span class="hljs-number">25</span></span><span>
    [city] =&gt; New York
)
</span></span>

Im obigen Beispiel erscheint es nicht im zurückgegebenen Array, da $ name undefiniert ist.

6. Zusammenfassung

Compact () ist eine sehr nützliche Funktion in PHP, die Variablen in assoziative Arrays umwandelt. Bei der Verarbeitung von Nullwerten enthält Compact () diese Variablen im Array mit dem Wert Null . Wenn Sie nicht möchten, dass das Array Null- oder Nullwerte enthält, können Sie es durch die Funktion array_filter () filtern und sogar benutzerdefinierte Filterregeln für eine feinere granulare Steuerung definieren.

Mit diesen Tricks können wir bei Verwendung von Compact () variablen flexibler behandeln, um sicherzustellen, dass das zurückgegebene Array unseren Anforderungen entspricht.

  • Verwandte Tags:

    null