> 백엔드 개발 > PHP 튜토리얼 > PHP 코드 사양에 대해 질문하기

PHP 코드 사양에 대해 질문하기

WBOY
풀어 주다: 2016-10-11 14:23:38
원래의
1139명이 탐색했습니다.

우선 이렇게 작성된 함수가 있습니다.

<code>function  exam(){
    //从数据库获取数据。
    $records = $aModel->where(['type' => 1])->get();
    
    if(empty($records))  return false;
    
    $newRecord = $bModel->map();
    foreach($records as $item){
        $newRecord->name = $item->name;
        $newRecord->age = $item->age;
        try{
            $bModel->insert($newRecord);
        }
        catch(\Exception $e){
            \Log::catch($e);
        }
    }
    return true;
}
</code>
로그인 후 복사
로그인 후 복사

그러면 이 함수는 이렇게 호출됩니다.

<code>if(true !== exam()){
    echo "表更新失败";
    return false;
}</code>
로그인 후 복사
로그인 후 복사

PHP 경험이 있는 분들은 한 번 살펴보세요. 꽤 어색해 보이는 부분이 몇 군데 있습니다.

  1. exum()함수에서 return의 위치가 적절한가요?

  2. 함수 반환 유형이 확실하지 않은 경우 실행이 완료되면 결과가 반환되고, 실행이 실패하면 false가 반환됩니다. 이 경우 결과가 유사하다고 판단하는 것이 적절한지 여부를 판단합니다. if(false === exam())에 전화할 때.

  3. if 판단에서 함수를 실행하면 코드의 가독성이 떨어지는 것 같은 느낌이 듭니다.

답글 내용:

우선 이렇게 작성된 함수가 있습니다.

<code>function  exam(){
    //从数据库获取数据。
    $records = $aModel->where(['type' => 1])->get();
    
    if(empty($records))  return false;
    
    $newRecord = $bModel->map();
    foreach($records as $item){
        $newRecord->name = $item->name;
        $newRecord->age = $item->age;
        try{
            $bModel->insert($newRecord);
        }
        catch(\Exception $e){
            \Log::catch($e);
        }
    }
    return true;
}
</code>
로그인 후 복사
로그인 후 복사

그러면 이 함수는 이렇게 호출됩니다.

<code>if(true !== exam()){
    echo "表更新失败";
    return false;
}</code>
로그인 후 복사
로그인 후 복사

PHP 경험이 있는 분들은 한 번 살펴보세요. 꽤 어색해 보이는 부분이 몇 군데 있습니다.

  1. Exam()함수에서 복귀 위치가 적절한가요?

  2. 함수 반환 유형이 확실하지 않은 경우 실행이 완료되면 결과가 반환되고, 실행이 실패하면 false가 반환됩니다. 이 경우 결과가 유사하다고 판단하는 것이 적절한지 여부를 판단합니다. if(false === exam())에 전화할 때.

  3. if 판단에서 함수를 실행하면 코드의 가독성이 떨어지는 것 같은 느낌이 듭니다.

  1. 시험 복귀() 예외가 발생하면 그냥 false를 반환하면 되지 않나요?

  2. 일반 반환 유형이 bool 유형인 경우 세 번째 유형을 추가하는 것은 권장되지 않습니다. 언급한 방법을 사용하여 결정할 수는 있지만 권장되지 않습니다

  3. 가독성 문제는 if에 있어서가 아니라 함수 이름에 문제가 있기 때문입니다. bool 유형을 반환하려면 다음과 같이 표현하는 것을 추가하는 것이 좋습니다.

<code class="php">if(false === isExam()){
    echo "表更新失败";
    return false;
}</code>
로그인 후 복사

읽을 수 있는 책 추천 :
https://book.douban.com/subje...

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿