Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > เกี่ยวก่ะ error ตัวแปรของ php5 ค่ะ คืออยากรู้ว่าใน php5 ในระบบที่เราเขียนมีการประกาศตัวแปรบางตัวแล้วไม่ได้ใช้



 

เกี่ยวก่ะ error ตัวแปรของ php5 ค่ะ คืออยากรู้ว่าใน php5 ในระบบที่เราเขียนมีการประกาศตัวแปรบางตัวแล้วไม่ได้ใช้

 



Topic : 033566



โพสกระทู้ ( 261 )
บทความ ( 0 )



สถานะออฟไลน์




คืออยากรู้ว่าในphp5 ในระบบที่เราเขียนมีการประกาศตัวแปรบางตัวแล้วไม่ได้ใช้ อ่ะค่ะ แล้วมันฟ้องerrorขึ้นมา อยากรู้ว่าต้องแก้ปัญหานี้ยังไงหรอค่ะ เพราะพึ่งรู้ว่าประกาศตัวแปรแล้วไม่ได้ใช้มันerrorด้วยอ่ะค่ะ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-10-27 16:57:25 By : paesalee View : 2258 Reply : 8
 

 

No. 1



โพสกระทู้ ( 830 )
บทความ ( 0 )



สถานะออฟไลน์


ใส่คำนี้ ไว้บนสุด

Code (PHP)
error_reporting(E_ALL ^ E_NOTICE);


หากจะปิด error ทุก error ให้ใส่

Code (PHP)
error_reporting(0);


หาข้อมูลเพิ่มเติมได้ที่นี่ http://php.net/manual/en/function.error-reporting.php






Date : 2009-10-27 17:10:37 By : danya
 


 

No. 2



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

Quote:
คืออยากรู้ว่าในphp5 ในระบบที่เราเขียนมีการประกาศตัวแปรบางตัวแล้วไม่ได้ใช้ อ่ะค่ะ แล้วมันฟ้องerrorขึ้นมา อยากรู้ว่าต้องแก้ปัญหานี้ยังไงหรอค่ะ เพราะพึ่งรู้ว่าประกาศตัวแปรแล้วไม่ได้ใช้มันerrorด้วยอ่ะค่ะ


มีด้วยเหรอคับ ที่ไม่ได้ใช้ แล้ว error หรือว่าเป็นพวก stream

ตัวแปรทั่วๆ ไปไม่เป็นไรคับ
Date : 2009-10-27 18:20:09 By : pjgunner
 

 

No. 3



โพสกระทู้ ( 830 )
บทความ ( 0 )



สถานะออฟไลน์


ผมว่า น่าจะแบบ เราไม่ได้ประกาศตัวแปร แค่ดันไปใช้ในเงือนไข 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
 


 

No. 4



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

อย่างงั้นเองเหรอ นึกถึงสมัยหัด php ใหม่ๆแฮะตอนนั้นเขียนถูกแล้วแต่มีพวก notice น่าเบื่อจริงๆ


ผมว่าพวก notice ปิดไปก็ดีแล้ว เขียนโค้ดได้กระชับขึ้น
Date : 2009-10-27 21:05:07 By : pjgunner
 


 

No. 5



โพสกระทู้ ( 1,463 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Blogger

ปิด 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
 


 

No. 6



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

Quote:
ข้อเสียอีกอย่างคือทุกๆ ครั้งถึงจะไม่แสดง notice แต่ error handler ก็ยังทำงานทุกครั้งที่เกิด error ครับ
นั่นสินะครับ
Quote:
$name = empty($_GET['name']) ? '' : $_GET['name'];

สำหรับผมคิดว่าไม่จำเป็นครับ

เพราะ ถ้าทำทุกๆตัวมันอาจจะช้ายิ่งกว่าเรียก error handler

Quote:
It is not necessary to initialize variables in PHP however it is a very good practice. Uninitialized variables have a default value of their type - FALSE, zero, empty string or an empty array.
จาก php manual




function my_err_hand($no, $str, $file, $line)
{
if ($no == E_USER_NOTICE)
{
return true;
}
else
{
echo $str.'line: '.$line.' file: '.$file;
return false;
}
}

set_error_handler("my_err_hand");

และแค่ปิด register_global

หรือแค่ เอา notice ออก ง่ายดี
Date : 2009-10-27 23:25:05 By : pjgunner
 


 

No. 7



โพสกระทู้ ( 1,463 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Blogger

อื้ม แต่ละวิธีก็มีข้อดีข้อเสียต่างกันไป

แต่ที่อยากได้จริงๆ จะเป็นแบบนี้อะ กำหนดค่า default ให้กับ $_POST['name'] ไปเลย เมื่อไหร่จะมีนะ
$name = $_POST['name'] : '';
Date : 2009-10-28 00:09:29 By : num
 


 

No. 8



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

ว่าแต่ว่า ผมก็ลืมไปนะครับ

Quote:
เพราะ ถ้าทำทุกๆตัวมันอาจจะช้ายิ่งกว่าเรียก error handler


มันก็เรียกทุกครั้งอยู่แล้วถ้ามันไปค้นหาตัวแปรไม่เจอในแสดก ดังนั้นมันก็เรียก error handler ทุกครั้งเหมือนกันกับการเช็คคุกครั้ง

ดังนั้นผมคิดว่าวิธีการที่ดีที่สุด(เร็วกว่า)ก็คือ ให้มันเรียก error handler เองเพราะเป็น native อยู่แล้วตอนค้นหาและเรียก error handler

ถ้าเช็ค มันก็ค้นหาโดยใช้ฟังชั่น และเซตค่าให้($name = $_POST['name'] : '';)

ดังนั้นผมแนะนำให้ใช้ วิธีเอา notice ออก และ register global เป็น off คับ

ความจริง php ก็เป็นภาษาไดนามิคอยู่แล้ว ไม่แน่ใจว่า php6 มันจะตัดออกป่าว เรื่อง notice เนี่ย หรือว่าวิธีแก้ปัญหาจะเป็นไปตามที่ผมบอกอยู่แล้ว เลยไม่เปลี่ยน
Date : 2009-10-28 00:32:36 By : pjgunner
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : เกี่ยวก่ะ error ตัวแปรของ php5 ค่ะ คืออยากรู้ว่าใน php5 ในระบบที่เราเขียนมีการประกาศตัวแปรบางตัวแล้วไม่ได้ใช้
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่