เกี่ยวก่ะ error ตัวแปรของ php5 ค่ะ คืออยากรู้ว่าใน php5 ในระบบที่เราเขียนมีการประกาศตัวแปรบางตัวแล้วไม่ได้ใช้
ผมว่า น่าจะแบบ เราไม่ได้ประกาศตัวแปร แค่ดันไปใช้ในเงือนไข if จะ error NOTICE
อย่างโค้ดข้างบนจะ error เพราะไม่ได้ประกาศตัวแปร $show
Code (PHP)
<?php
ini_set('display_errors','on');
error_reporting(E_ALL);
if ( $show == true )
{
echo '555';
}
else
{
echo '666';
}
?>
Date :
2009-10-27 20:40:36
By :
danya
อย่างงั้นเองเหรอ นึกถึงสมัยหัด php ใหม่ๆแฮะตอนนั้นเขียนถูกแล้วแต่มีพวก notice น่าเบื่อจริงๆ
ผมว่าพวก notice ปิดไปก็ดีแล้ว เขียนโค้ดได้กระชับขึ้น
Date :
2009-10-27 21:05:07
By :
pjgunner
ปิด notice ไปแล้วพยายามเขียนชื่อตัวแปรให้สั้นมากๆ ครับ
เนื่องจากเวลาพิมพ์ชื่อตัวแปรผิดมันจะไม่เตือน ทำให้หา error ยากครับ
ข้อเสียอีกอย่างคือทุกๆ ครั้งถึงจะไม่แสดง notice แต่ error handler ก็ยังทำงานทุกครั้งที่เกิด error ครับ
วิธีแก้ปัญหาเมื่อเปิดให้แสดง error ระดับ notice
$name = empty($_GET['name']) ? '' : $_GET['name'];
หรือ
$name = isset($_GET['name']) ? $_GET['name'] : '';
ดูแล้วเป็นโค้ดที่น่ารำคาญมากถ้าพิมพ์เองตลอด
แต่ถ้าใช้ editor ที่มีคุณสมบัติ macro ให้ใช้ macro ช่วย gen code ตรงส่วนนี้ก็จะทำให้สะดวกขึ้นมากครับ
อย่างเช่นพิมพ์ name กด ctrl+1
จะ run macro
ctrl+shift+left-arrow
ctrl+c
spacebar
=
spacebar
isset($_GET['
ctrl+v
']) ? $_GET['
ctrl+v
'] : '';
อะไรประมาณนี้ครับ
ตัวอย่าง macro ของ netbean ครับ
selection-previous-word selection-forward copy-to-clipboard caret-end-line " = empty($_POST['" paste-from-clipboard caret-end-line " ? '' : $_POST['" paste-from-clipboard caret-end-line ";"
Date :
2009-10-27 21:37:46
By :
num
อื้ม แต่ละวิธีก็มีข้อดีข้อเสียต่างกันไป
แต่ที่อยากได้จริงๆ จะเป็นแบบนี้อะ กำหนดค่า default ให้กับ $_POST['name'] ไปเลย เมื่อไหร่จะมีนะ
$name = $_POST['name'] : '';
Date :
2009-10-28 00:09:29
By :
num
Load balance : Server 02