Page 1 of 1

เขียน PHP กับ Array แบบนี้ ระวัง Error นะ

Posted: 28/11/2020 2:31 am
by mindphp
พอดีได้มีโอกาสวีวิวโค้ด ขอยกตัวอย่าง ตัดโค้ดมาบางส่วน

Code: Select all

               $username = $user_show_all = $like_time = '';	
                while ($row = $this->db->sql_fetchrow($result)) {
                    $user_id[] = $row['user_id'];
                    $user_show[$row['user_id']] = $row['username'];
                    $like_time[$row['user_id']] = $row['like_time'];
                }
5 บรรทัดนี้ มีอะไรแปลกๆ อยู่ถึง 4 บรรทัดเลยนะ

กำหนด แบบ นี้หมายความว่า ตัวแปล $like_time เป็น string แล้ว line สุดท้ายมาบอกให้มันเป็น array ไม่ได้นะ หลายคนคิดว่ามันจะทับค่า บาง server ปรับให้แต่บาง server ไม่ปรับ และ มันเขียนผิดรูปแบบ
ควรเขียนอย่างนี้

Code: Select all

               // ....
				$like_time = array();
                while ($row = $this->db->sql_fetchrow($result)) {
                    $user_id[] = $row['user_id'];
                    $user_show[$row['user_id']] = $row['username'];
                    $like_time[$row['user_id']] = $row['like_time'];
                }
หรือ ถ้าจะให้ดียิ่งขึ้น เขียนอย่างนี้ หนี้ห่าง bug ได้ดีสุด

Code: Select all

				$like_time = array();
                while ($row = $this->db->sql_fetchrow($result)) {
                    $user_id =  $row['user_id'];
                    $user_show[$user_id] = $row['username'];
                    $like_time[$user_id] = $row['like_time'];
                }
bug error