PHP 코드를 작성할 때 주의해야 할 사항
6980 단어 PHP
이 문장은 잘못된 것입니까?
PHP, 개인적으로는'쓰면 움직일 수 있는 느낌'같은 느린 느낌을 선호한다.
그러나 업무에 쓸 때, 특히 다른 사람이 보고 나면 어느 정도의 이해가 필요하다.
몇 달 동안 잘못되고 어둡고 깊은 시스템의 유지 보수 업무를 맡아'여기서 주의해야 한다'는 부분을 정리하고 싶습니다.
순환 처리
예를 들어foreach 같은 방식으로 배열을 회전하고 싶은 경우...
$arr = [0, 1, 5, 0, 3];
$filtered_arr = [];
foreach ($arr as $key => $val) {
if ( ! empty($val)) {
// ここになにか処理を書く
echo "{$key} is not 0 : {$val}";
$filtered_arr[] = $val;
} else {
continue;
}
}
이런 인코딩이 있을 때, 나는 개인적으로 불만족스러운 점이 있다.일단 여기야.
if ( ! empty($val)) {
if문 순서
주처리된 지점과continue가 있을 때의 지점이 있지만, 그 순서를 반대로 하는 것이 가장 좋다.
이런 느낌.
if (empty($val)) {
continue;
}
// ここになにか処理を書く
echo "{$key} is not 0 : {$val}";
$filtered_arr[] = $val;
왜 이렇게 말합니까, 아까의 예에서 주요 처리는 "echo 후 깊이 배열"일 뿐입니다."메인 프로세서를 파악한 후에만(읽은 후에) continue를 발견할 수 있습니다."
처리 절차를 파악하기가 매우 어렵다.
"if문을 찾았을 때else문을 보세요"라고 말할 수도 있지만, 위에 쓴 방법을 먼저 쓰면
continue를 발견하는 데는 그런 시간이 필요 없어요.
처리의 절차를 파악하기 어렵다는 것이 관건이다.
empty를 쓰지 마세요...
PHP 브로셔에 따르면empty 함수는
変数が空であるかどうかを検査する
가 있다.하지만 사실 이것이 진정한 조건은
어쨌든 어떤 조건을 점검했는지 명확하지 않다.
나는
if (strlen($str) <= 0) {}
if (count($arr) <= 0) {}
if ($intval <= 0)
이처럼 의식적으로'기대가 어떤 값으로 변할지 명확히 하라'고 써야 한다.더 이상 바퀴를 개발하지 마라
말하자면필터 쓰신다고요?
$arr = [0, 1, 5, 0, 3];
$filtered_arr = array_filter($arr, function($val) {
return ($val !=== 0)
});
foreach ($filtered_arr as $val) {
echo "{$key} is not 0 : {$val}";
}
클래스 디자인
/*ShopCartController.php*/
class ShopCartController {
// カートに入ってる商品の合計を返す
public function item_total_amount() {}
}
/*ShopOrderController.php*/
class ShopOrderController {
// カートに入ってる商品の合計を返す
public function get_allitem_amount() {}
}
이거 역시 문제 없구나."너무 심심해서..."그렇게 생각하실 수도 있어요.
실제로 있었던 일이에요.
아실 거라고 생각합니다.
그러니까 써야 할 곳에 써라.이런 처리는 잘 총결산해야 한다.
그리고 물론 총괄해야 할 부분은 컨트롤러가 아니다.
왕림해 주셔서 감사합니다
그게 다야.
Reference
이 문제에 관하여(PHP 코드를 작성할 때 주의해야 할 사항), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/musou1500/items/0d14ae573e4a4de04cd1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)