Vielleicht möchten Sie diese 5 PHP-Codierungsgewohnheiten korrigieren!

藏色散人
Freigeben: 2023-04-09 15:22:02
nach vorne
4418 Leute haben es durchsucht

Nachdem ich viel Code zensiert habe, sehe ich oft wiederholte Fehler. Im Folgenden finden Sie eine Methode, um diese Fehler zu korrigieren. Vielleicht möchten Sie diese 5 PHP-Codierungsgewohnheiten 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 ...
    }
}
Nach dem Login kopieren
foreach und Array-Funktionen (array_*) können leere Arrays verarbeiten.
  • Keine vorherige Prüfung erforderlich
  • Kann eine Einrückungsebene reduzieren
$items = [];
// ...
foreach ($items as $item) {
    // process on $item ...
}
Nach dem Login kopieren

Zweitens: Kapseln Sie den Codeinhalt in einer Zusammenfassung der if-Anweisungforeach 以及数组函数 (array_*) 可以处理空数组。

  • 不需要先进行测试
  • 可减少一层缩进
function foo(User $user) {
    if (!$user->isDisabled()) {
        // ...
        // long process
        // ...
    }
}
Nach dem Login kopieren

二:将代码内容封装到一个 if  语句汇总

function foo(User $user) {
    if ($user->isDisabled()) {
        return;
    }

    // ...
    // 其他代码
    // ...
}
Nach dem Login kopieren

这不是 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']
}
Nach dem Login kopieren

三:多次调用 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']
}
Nach dem Login kopieren

我们经常需要检查变量是否已定义,php 提供了 isset 函数可以用于检测该变量,而且该函数可以一次接受多个参数,所以一下代码可能更好:

$name = "John Doe";
echo sprintf('Bonjour %s', $name);
Nach dem Login kopieren

四:echo和sprintf方法一起使用

$name = "John Doe";
printf('Bonjour %s', $name);
Nach dem Login kopieren

这段代码可能在微笑,但是我碰巧写了一段时间。而且我仍然看到很多!不用结合echosprintf,我们可以简单地使用printf方法。

$items = [
    'one_key' => 'John',
    'search_key' => 'Jane',
];

if (in_array('search_key', array_keys($items))) {
    // process
}
Nach dem Login kopieren

五:通过组合两种方法检查数组中是否存在键

$items = [
    'one_key' => 'John',
    'search_key' => 'Jane',
];

if (array_key_exists('search_key', $items)) {
    // process
}
Nach dem Login kopieren

我经常看到的最后一个错误是in_arrayarray_keys的联合使用。所有这些都可以使用array_key_exists替换。

if (isset($items['search_key'])) {
    // process
}
Nach dem Login kopieren

我们还可以使用isset来检查值是否不是null

rrreee
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ückungsebene

rrreee

Drei: 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! Anstatt 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!

Verwandte Etiketten:
php
Quelle:learnku.com
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