ホームページ > バックエンド開発 > PHPチュートリアル > これらの 5 つの悪い PHP コーディング習慣を修正するとよいでしょう。

これらの 5 つの悪い PHP コーディング習慣を修正するとよいでしょう。

藏色散人
リリース: 2023-04-09 15:22:02
転載
4459 人が閲覧しました

推奨: "これらの 5 つの悪い PHP コーディング習慣を修正するとよいでしょう。 ビデオ チュートリアル "

これらの 5 つの悪い PHP コーディング習慣を修正するとよいでしょう。

多くのコード レビューを行った後、いくつかの重複エラーが頻繁に発生します。これは次のとおりです。それらを修正する方法。

1:

$items = [];
// ...
if (count($items) > 0) {
    foreach ($items as $item) {
        // process on $item ...
    }
}
ログイン後にコピー

foreach と配列関数 (array_*) をループする前に、配列が空かどうかをテストします。空の配列を処理できます。

  • 最初にテストする必要はありません
  • インデントを 1 レベル減らすことができます
$items = [];
// ...
foreach ($items as $item) {
    // process on $item ...
}
ログイン後にコピー

2: コードの内容を if ステートメントの概要にカプセル化します。

function foo(User $user) {
    if (!$user->isDisabled()) {
        // ...
        // long process
        // ...
    }
}
ログイン後にコピー

これは これらの 5 つの悪い PHP コーディング習慣を修正するとよいでしょう。 固有の状況ではありませんが、このような状況によく遭遇します。早めに戻すことでインデントを減らすことができます。

すべての main メソッドは最初のインデント レベルにあります

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

    // ...
    // 其他代码
    // ...
}
ログイン後にコピー

3: isset メソッドを複数回呼び出す

次の状況が発生する可能性があります:

$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']
}
ログイン後にコピー

変数が定義されているかどうかを確認する必要があることがよくあります。これらの 5 つの悪い PHP コーディング習慣を修正するとよいでしょう。 には、変数の検出に使用できる 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']
}
ログイン後にコピー

Four: Echo メソッドと sprintf メソッドを併用しています

$name = "John Doe";
echo sprintf('Bonjour %s', $name);
ログイン後にコピー

このコードは微笑ましいかもしれませんが、たまたま書いたコードです。そして、私はまだそれをたくさん見ています! echosprintf を組み合わせる代わりに、単純に printf メソッドを使用できます。

$name = "John Doe";
printf('Bonjour %s', $name);
ログイン後にコピー

5: 2 つのメソッドを組み合わせて配列内にキーが存在するかどうかを確認する

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

if (in_array('search_key', array_keys($items))) {
    // process
}
ログイン後にコピー

よく見かける最後の間違いは、in_array と Joint です。 array_keys の使用。これらはすべて、array_key_exists を使用して置き換えることができます。

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

if (array_key_exists('search_key', $items)) {
    // process
}
ログイン後にコピー

isset を使用して、値が null でないかどうかを確認することもできます。

if (isset($items['search_key'])) {
    // process
}
ログイン後にコピー

元のアドレス: https://dev.to/klnjmm/5-bad-characters-to-lose-in-php-2j98

翻訳アドレス: https:/ /learnku.com/php/t/49583

以上がこれらの 5 つの悪い PHP コーディング習慣を修正するとよいでしょう。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:learnku.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート