Heim  >  Artikel  >  Backend-Entwicklung  >  Stellen Sie eine Frage zu PHP-Codespezifikationen

Stellen Sie eine Frage zu PHP-Codespezifikationen

WBOY
WBOYOriginal
2016-10-11 14:23:381114Durchsuche

Zuallererst gibt es eine Funktion, die so geschrieben ist.

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

Dann wird diese Funktion wie folgt aufgerufen.

<code>if(true !== exam()){
    echo "表更新失败";
    return false;
}</code>

Erfahrene PHPer schauen sich bitte um, es gibt ein paar Stellen, die ziemlich seltsam aussehen:

  1. Ist die Position von return in der Funktion exam() angemessen?

  2. Wenn der Rückgabetyp der Funktion unsicher ist, wird das Ergebnis zurückgegeben, wenn die Ausführung abgeschlossen ist, und false wird zurückgegeben, wenn die Ausführung fehlschlägt. In diesem Fall ist es angemessen, das Ergebnis ähnlich zu beurteilen bis if(false === exam()) beim Anrufen.

  3. Ich habe das Gefühl, dass die Ausführung der Funktion im if-Urteil die Lesbarkeit des Codes beeinträchtigt. Ich frage mich, ob es ein solches Problem gibt.

Antwortinhalt:

Zuallererst gibt es eine Funktion, die so geschrieben ist.

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

Dann wird diese Funktion wie folgt aufgerufen.

<code>if(true !== exam()){
    echo "表更新失败";
    return false;
}</code>

Erfahrene PHPer, schauen Sie sich bitte um, es gibt ein paar Stellen, die ziemlich seltsam aussehen:

  1. Ist die Position von return in der Funktion exam() angemessen?

  2. Wenn der Rückgabetyp der Funktion unsicher ist, wird das Ergebnis zurückgegeben, wenn die Ausführung abgeschlossen ist, und false wird zurückgegeben, wenn die Ausführung fehlschlägt. In diesem Fall ist es angemessen, das Ergebnis ähnlich zu beurteilen bis if(false === exam()) beim Anrufen.

  3. Ich habe das Gefühl, dass die Ausführung der Funktion im if-Urteil die Lesbarkeit des Codes beeinträchtigt. Ich frage mich, ob es ein solches Problem gibt.

  1. In exam() zurückgeben. Warum nicht einfach false zurückgeben, wenn eine Ausnahme ausgelöst wird?

  2. Wenn der allgemeine Rückgabetyp ein Bool-Typ ist, wird nicht empfohlen, einen dritten Typ hinzuzufügen. Die von Ihnen erwähnte Methode kann zur Bestimmung verwendet werden, wird jedoch nicht empfohlen

  3. Das Lesbarkeitsproblem liegt nicht daran, dass es in if liegt, sondern daran, dass es ein Problem mit Ihrem Funktionsnamen gibt. Wenn Sie einen Bool-Typ zurückgeben möchten, wird empfohlen, ihn auszudrücken, z. B.:

<code class="php">if(false === isExam()){
    echo "表更新失败";
    return false;
}</code>

Empfehlen Sie ein Buch, das Sie lesen können:
https://book.douban.com/subje...

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn