ให้อภัย pseudo-php / code ของฉัน
ฉันคิดว่ามันขึ้นอยู่กับการใช้ผลลัพธ์
หากคุณต้องการแก้ไข / แก้ไขค่าส่งคืนและบันทึกจากนั้นส่งคืนวัตถุเปล่า ด้วยวิธีนี้คุณสามารถใช้ฟังก์ชันเดียวกันเพื่อเติมข้อมูลลงในวัตถุใหม่หรือวัตถุที่มีอยู่
สมมติว่าฉันมีฟังก์ชั่นที่รับคีย์หลักและอาเรย์ของข้อมูลเติมแถวด้วยข้อมูลจากนั้นบันทึกเร็กคอร์ดผลลัพธ์ไปยัง db เนื่องจากฉันต้องการเติมวัตถุด้วยข้อมูลของฉันไม่ว่าจะด้วยวิธีใดจึงเป็นประโยชน์อย่างมากในการดึงวัตถุว่างกลับจากผู้ทะเยอทะยาน ด้วยวิธีนี้ฉันสามารถดำเนินการเหมือนกันไม่ว่าในกรณีใด คุณใช้ผลลัพธ์ของฟังก์ชัน getter ไม่ว่าจะเกิดอะไรขึ้น
ตัวอย่าง:
function saveTheRow($prim_key, $data) {
$row = getRowByPrimKey($prim_key);
// Populate the data here
$row->save();
}
ที่นี่เราจะเห็นได้ว่าชุดการทำงานชุดเดียวกันจัดการระเบียนทั้งหมดของประเภทนี้
อย่างไรก็ตามหากจุดประสงค์สูงสุดของค่าส่งคืนคือการอ่านและทำบางสิ่งกับข้อมูลฉันจะคืนค่าว่าง ด้วยวิธีนี้ฉันสามารถระบุได้อย่างรวดเร็วว่าไม่มีข้อมูลที่ส่งคืนและแสดงข้อความที่เหมาะสมให้กับผู้ใช้หรือไม่
โดยปกติฉันจะตรวจจับข้อยกเว้นในฟังก์ชั่นของฉันที่ดึงข้อมูล (เพื่อให้ฉันสามารถบันทึกข้อความแสดงข้อผิดพลาดและอื่น ๆ ... ) จากนั้นคืนค่า null โดยตรงจากการจับ โดยทั่วไปแล้วผู้ใช้จะไม่สำคัญว่าปัญหาคืออะไรดังนั้นฉันจึงพบว่าการสรุป / บันทึกข้อผิดพลาดของฉันในฟังก์ชั่นที่ได้รับข้อมูลนั้นเป็นสิ่งที่ดีที่สุด หากคุณยังคงรักษารหัสฐานข้อมูลที่ใช้ร่วมกันใน บริษัท ขนาดใหญ่ใด ๆ สิ่งนี้จะเป็นประโยชน์อย่างยิ่งเพราะคุณสามารถบังคับให้มีการบันทึก / จัดการข้อผิดพลาดที่เหมาะสมแม้กระทั่งโปรแกรมเมอร์ที่ขี้เกียจที่สุด
ตัวอย่าง:
function displayData($row_id) {
// Logging of the error would happen in this function
$row = getRow($row_id);
if($row === null) {
// Handle the error here
}
// Do stuff here with data
}
function getRow($row_id) {
$row = null;
try{
if(!$db->connected()) {
throw excpetion("Couldn't Connect");
}
$result = $db->query($some_query_using_row_id);
if(count($result) == 0 ) {
throw new exception("Couldn't find a record!");
}
$row = $db->nextRow();
} catch (db_exception) {
//Log db conn error, alert admin, etc...
return null; // This way I know that null means an error occurred
}
return $row;
}
นั่นเป็นกฎทั่วไปของฉัน มันใช้งานได้ดีจนถึงตอนนี้
if (!DataExists)
ฉันคิดว่าคุณหมายถึง