Nachdem ich viel Code zensiert habe, sehe ich oft wiederholte Fehler. Im Folgenden finden Sie eine Methode, um diese Fehler zu korrigieren.
Eins: Testen Sie, ob das Array leer ist, bevor Sie eine Schleife ausführen
$items = []; // ... if (count($items) > 0) { foreach ($items as $item) { // process on $item ... } }
foreach
und Array-Funktionen (array_*
) können leere Arrays verarbeiten. $items = []; // ... foreach ($items as $item) { // process on $item ... }
Zweitens: Kapseln Sie den Codeinhalt in einer Zusammenfassung der if-Anweisungforeach
以及数组函数 (array_*
) 可以处理空数组。
function foo(User $user) { if (!$user->isDisabled()) { // ... // long process // ... } }
二:将代码内容封装到一个 if 语句汇总
function foo(User $user) { if ($user->isDisabled()) { return; } // ... // 其他代码 // ... }
这不是 Vielleicht möchten Sie diese 5 PHP-Codierungsgewohnheiten korrigieren! 特有的情况,不过我经常碰到此类情况。你可以通过提前返回来减少缩进。
所有主要方法处于第一个缩进级别
$a = null; $b = null; $c = null; // ... if (!isset($a) || !isset($b) || !isset($c)) { throw new Exception("undefined variable"); } // 或者 if (isset($a) && isset($b) && isset($c) { // process with $a, $b et $c } // 或者 $items = []; //... if (isset($items['user']) && isset($items['user']['id']) { // process with $items['user']['id'] }
三:多次调用 isset 方法
你可能遇到以下情况:
$a = null; $b = null; $c = null; // ... if (!isset($a, $b, $c)) { throw new Exception("undefined variable"); } // 或者 if (isset($a, $b, $c)) { // process with $a, $b et $c } // 或者 $items = []; //... if (isset($items['user'], $items['user']['id'])) { // process with $items['user']['id'] }
我们经常需要检查变量是否已定义,php 提供了 isset 函数可以用于检测该变量,而且该函数可以一次接受多个参数,所以一下代码可能更好:
$name = "John Doe"; echo sprintf('Bonjour %s', $name);
四:echo和sprintf方法一起使用
$name = "John Doe"; printf('Bonjour %s', $name);
这段代码可能在微笑,但是我碰巧写了一段时间。而且我仍然看到很多!不用结合echo
和sprintf
,我们可以简单地使用printf
方法。
$items = [ 'one_key' => 'John', 'search_key' => 'Jane', ]; if (in_array('search_key', array_keys($items))) { // process }
五:通过组合两种方法检查数组中是否存在键
$items = [ 'one_key' => 'John', 'search_key' => 'Jane', ]; if (array_key_exists('search_key', $items)) { // process }
我经常看到的最后一个错误是in_array
和array_keys
的联合使用。所有这些都可以使用array_key_exists
替换。
if (isset($items['search_key'])) { // process }
我们还可以使用isset
来检查值是否不是null
Dies ist keine Vielleicht möchten Sie diese 5 PHP-Codierungsgewohnheiten korrigieren!-spezifische Situation, aber ich begegne oft solchen Situationen. Sie können die Einrückung reduzieren, indem Sie früher zurückkehren. Alle Hauptmethoden befinden sich auf der ersten EinrückungsebeneDrei: Rufen Sie die Isset-Methode mehrmals auf🎜🎜🎜Die folgenden Situationen können auftreten:🎜rrreee🎜Wir müssen oft überprüfen, ob eine Variable definiert wurde, stellt Vielleicht möchten Sie diese 5 PHP-Codierungsgewohnheiten korrigieren! bereit Die Funktion isset kann zum Erkennen der Variablen verwendet werden und die Funktion kann mehrere Parameter gleichzeitig akzeptieren. Daher ist der folgende Code möglicherweise besser: 🎜rrreee🎜🎜Vier: echo- und sprintf-Methoden werden zusammen verwendet 🎜🎜rrreee🎜Dieser Code kann sein Ich lächle, aber zufällig habe ich eine Weile gebraucht, um zu schreiben. Und ich sehe immer noch viel davon! Anstattrrreee
echo
und sprintf
zu kombinieren, können wir einfach die Methode printf
verwenden. 🎜rrreee🎜🎜Fünf: Überprüfen Sie, ob ein Schlüssel in einem Array vorhanden ist, indem Sie zwei Methoden kombinieren 🎜🎜rrreee🎜Der letzte Fehler, den ich oft sehe, ist die kombinierte Verwendung von in_array
und array_keys
. All dies kann durch array_key_exists
ersetzt werden. 🎜rrreee🎜Wir können auch isset
verwenden, um zu prüfen, ob der Wert nicht null
ist. 🎜rrreee🎜🎜Originaladresse: https://dev.to/klnjmm/5-bad-habits-to-lose-in-php-2j98🎜🎜Übersetzungsadresse: https://learnku.com/php/t/49583 🎜🎜Das obige ist der detaillierte Inhalt vonVielleicht möchten Sie diese 5 PHP-Codierungsgewohnheiten korrigieren!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!