ホームページ >バックエンド開発 >PHPチュートリアル >PHP コードでの扱いにくい変数チェックを回避するには?
元の問題:
PHP アプリケーションで制御されていない変数を使用すると、多数のエラーが発生する可能性がありますE_NOTICE エラー レベルをオンにして実行すると、「未定義」および「オフセット」エラーが発生します。 isset()、empty()、array_key_exists() 関数を過剰に使用してこれらのエラーに対処すると、コードが肥大化し、読みやすさが損なわれる可能性があります。
推奨されるアプローチ:
代わりに変数チェックのみに依存する場合は、変数チェックの必要性を最小限に抑えるためにコードを再構築することを検討してください。方法は次のとおりです:
初期化時に変数にデフォルト値を割り当てます。これにより、外部から割り当てられているかどうかに関係なく、変数には常に定義された値が含まれるため、isset() チェックの必要がなくなります。
例:
$foo = null; // Null $bar = $baz = 'default value'; // Default string
null 値を避けるために、関数の引数のデフォルト値を指定します。これにより、関数は isset() チェックを必要とせずに予測可能な入力を処理できるようになります。
例:
function foo($bar = null) { ... }
array_merge() を使用して、デフォルト値を受信データ ソースと結合します。これにより、配列が既知のデフォルト値で初期化され、isset() チェックの必要がなくなります。
例:
$defaults = ['foo' => false, 'bar' => true, 'baz' => 'default value']; $values = array_merge($defaults, $incoming_array);
の慎重な使用 この関数は、キーの有無が重要な例外的な場合にのみ使用してください。一般に、変数または配列を初期化すると、array_key_exists() チェックの必要がなくなります。
例:
$array = ['key' => null]; if (array_key_exists('key', $array)) { ... }
テンプレートでは isset() および empty() チェックを控えめに使用します。変数が設定されていないか空の場合は、デフォルト値または適切なエラー処理メッセージに置き換える必要があります。
例:
<?php if (isset($foo)): ?> <!-- Output content --> <?php else: ?> <p>Foo is not set.</p> <?php endif; ?>
次のようにします。ガイドラインに従って、E_NOTICE 互換性を維持しながら、isset()、empty()、および array_key_exists() チェックへの依存を大幅に減らすことができます。このアプローチにより、コードがよりクリーンで読みやすくなり、コードの信頼性と保守性が向上します。
以上がPHP コードでの扱いにくい変数チェックを回避するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。