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

Post a reply

Smilies
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: เขียน PHP กับ Array แบบนี้ ระวัง Error นะ

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

by mindphp » 28/11/2020 2:31 am

พอดีได้มีโอกาสวีวิวโค้ด ขอยกตัวอย่าง ตัดโค้ดมาบางส่วน

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

Top