>  기사  >  백엔드 개발  >  다음 5가지 PHP 코딩 습관을 교정하고 싶을 수도 있습니다!

다음 5가지 PHP 코딩 습관을 교정하고 싶을 수도 있습니다!

藏色散人
藏色散人앞으로
2020-09-14 13:34:144410검색
"

코드 검열을 많이 하고 나면 반복되는 오류가 자주 발생합니다. 이러한 오류를 수정하는 방법은 다음과 같습니다. 다음 5가지 PHP 코딩 습관을 교정하고 싶을 수도 있습니다!

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

这段代码可能在微笑,但是我碰巧写了一段时间。而且我仍然看到很多!不用结合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
다음 5가지 PHP 코딩 습관을 교정하고 싶을 수도 있습니다!에만 국한된 상황은 아니지만, 이런 상황을 자주 접하게 됩니다. 일찍 반환하면 들여쓰기를 줄일 수 있습니다.

모든 주요 메소드는 첫 번째 들여쓰기 수준에 있습니다.

rrreee

3: isset 메소드를 여러 번 호출합니다.🎜🎜🎜다음과 같은 상황이 발생할 수 있습니다.🎜rrreee🎜변수가 정의되었는지 확인해야 하는 경우가 많습니다. 다음 5가지 PHP 코딩 습관을 교정하고 싶을 수도 있습니다!는 isset 함수를 사용하여 변수를 감지할 수 있으며 함수는 여러 매개변수를 동시에 허용할 수 있으므로 다음 코드가 더 나을 수 있습니다. 🎜rrreee🎜🎜Four: echo 및 sprintf 메서드가 함께 사용됩니다🎜🎜rrreee🎜이 코드는 다음과 같을 수 있습니다. 웃고 있지만 글을 쓰는 데 시간이 좀 걸렸어요. 그리고 나는 아직도 그것을 많이 본다! echosprintf를 결합하는 대신 간단히 printf 메서드를 사용할 수 있습니다. 🎜rrreee🎜🎜다섯 가지: 두 가지 방법을 결합하여 배열에 키가 있는지 확인합니다. 🎜🎜rrreee🎜 제가 자주 보는 마지막 실수는 in_arrayarray_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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 learnku.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제