Heim  >  Artikel  >  Backend-Entwicklung  >  Vielleicht möchten Sie diese 5 PHP-Codierungsgewohnheiten korrigieren!

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

藏色散人
藏色散人nach vorne
2020-09-14 13:34:144410Durchsuche

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 ...
    }
}
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 ...
}

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);

这段代码可能在微笑,但是我碰巧写了一段时间。而且我仍然看到很多!不用结合echosprintf,我们可以简单地使用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_arrayarray_keys的联合使用。所有这些都可以使用array_key_exists替换。

if (isset($items['search_key'])) {
    // process
}

我们还可以使用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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen