코드 검열을 많이 하고 나면 반복되는 오류가 자주 발생합니다. 이러한 오류를 수정하는 방법은 다음과 같습니다.
One: 반복하기 전에 배열이 비어 있는지 테스트
$items = []; // ... if (count($items) > 0) { foreach ($items as $item) { // process on $item ... } }
foreach
하고 배열 함수(array_*
)가 빈 배열을 처리할 수 있습니다. $items = []; // ... foreach ($items as $item) { // process on $item ... }
둘: 코드 내용을 if 문 요약으로 캡슐화foreach
以及数组函数 (array_*
) 可以处理空数组。
function foo(User $user) { if (!$user->isDisabled()) { // ... // long process // ... } }
二:将代码内容封装到一个 if 语句汇总
function foo(User $user) { if ($user->isDisabled()) { return; } // ... // 其他代码 // ... }
这不是 다음 5가지 PHP 코딩 습관을 교정하고 싶을 수도 있습니다! 特有的情况,不过我经常碰到此类情况。你可以通过提前返回来减少缩进。
所有主要方法处于第一个缩进级别
$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
다음 5가지 PHP 코딩 습관을 교정하고 싶을 수도 있습니다!에만 국한된 상황은 아니지만, 이런 상황을 자주 접하게 됩니다. 일찍 반환하면 들여쓰기를 줄일 수 있습니다. 모든 주요 메소드는 첫 번째 들여쓰기 수준에 있습니다.3: isset 메소드를 여러 번 호출합니다.🎜🎜🎜다음과 같은 상황이 발생할 수 있습니다.🎜rrreee🎜변수가 정의되었는지 확인해야 하는 경우가 많습니다. 다음 5가지 PHP 코딩 습관을 교정하고 싶을 수도 있습니다!는 isset 함수를 사용하여 변수를 감지할 수 있으며 함수는 여러 매개변수를 동시에 허용할 수 있으므로 다음 코드가 더 나을 수 있습니다. 🎜rrreee🎜🎜Four: echo 및 sprintf 메서드가 함께 사용됩니다🎜🎜rrreee🎜이 코드는 다음과 같을 수 있습니다. 웃고 있지만 글을 쓰는 데 시간이 좀 걸렸어요. 그리고 나는 아직도 그것을 많이 본다!rrreee
echo
와 sprintf
를 결합하는 대신 간단히 printf
메서드를 사용할 수 있습니다. 🎜rrreee🎜🎜다섯 가지: 두 가지 방법을 결합하여 배열에 키가 있는지 확인합니다. 🎜🎜rrreee🎜 제가 자주 보는 마지막 실수는 in_array
와 array_keys
를 결합하여 사용하는 것입니다. . 이들 모두는 array_key_exists
를 사용하여 대체할 수 있습니다. 🎜rrreee🎜isset
을 사용하여 값이 null
이 아닌지 확인할 수도 있습니다. 🎜rrreee🎜🎜원본주소 : https://dev.to/klnjmm/5-bad-habits-to-lose-in-php-2j98🎜🎜번역주소 : https://learnku.com/php/t/49583 🎜🎜위 내용은 다음 5가지 PHP 코딩 습관을 교정하고 싶을 수도 있습니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!