Heim > Artikel > Backend-Entwicklung > Stellen Sie eine Frage zu PHP-Codespezifikationen
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:
Ist die Position von return in der Funktion exam() angemessen?
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.
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.
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:
Ist die Position von return in der Funktion exam() angemessen?
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.
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.
In exam() zurückgeben. Warum nicht einfach false zurückgeben, wenn eine Ausnahme ausgelöst wird?
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
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...