ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

หน้า: 1 2 [ทั้งหมด]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ขอถาม php หน่อยครับผมงง  (อ่าน 2061 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
ninwatza
คนรักเสียว
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 184



ดูรายละเอียด
« เมื่อ: 06 สิงหาคม 2014, 16:21:02 »

ขอถาม php หน่อยครับผมงง  Tongue

เมื่อผมใส่ isset เข้าไปเพื่อที่จะไม่ให้เกิด notice



มันก็ฟ้องว่า undefined ครับ



แต่ถ้าผมไม่ใส่ isset มันก็รันได้ปรกติครับ แต่มันจะขึ้นโชว์ notice ก่อน
ถ้าผมไปปิด notices ใน php ได้ไหมครับ จะมีปัญหาอะไรรึเปล่าครับ  Tongue
บันทึกการเข้า
sbaydee
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 337
ออฟไลน์ ออฟไลน์

กระทู้: 1,622



ดูรายละเอียด
« ตอบ #1 เมื่อ: 06 สิงหาคม 2014, 16:27:22 »

ควรเอา function calculator ไปไว้ข้างนอกหรือบนๆก็ได้ครับ
บันทึกการเข้า
smapan
Global Moderator
เจ้าพ่อบอร์ดเสียว
*****

พลังน้ำใจ: 643
ออฟไลน์ ออฟไลน์

กระทู้: 8,269



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 06 สิงหาคม 2014, 17:01:14 »

ไม่เกี่ยวกับ isset ครับ ที่จริงมันก็เกี่ยวเอาเป้นว่า มันอยู่ที่ความตั้งใจนั่นล่ะครับ
มันซับซ้อนครับถ้าคิดให้สมเหตูตามที่เขียนเอาไว้
...แต่ผมเชื่อว่าคุณคงไม่ได้คิดซับซ้อนขนาดนั้น

เอาเป้นว่าวางลำดับของ ฟังชั่นผิดที่ละกันครับ
บันทึกการเข้า

จูมล่าโฮส สยามโฮสเว็บ modty.com
รวมที่พัก เช่ารายวัน ที่พักเช่ารายเดือนมากที่สุดแจ่มจริง
***Tel 083-757-1515 ติดปัญหา Joomla ตรงไหนรับปรึกษาฟรี โทรมาเถอะครับ ถ้าตอบได้ช่วยแน่นอน ไม่มีกั้ก. ***
esanza.com
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 270
ออฟไลน์ ออฟไลน์

กระทู้: 3,672



ดูรายละเอียด
« ตอบ #3 เมื่อ: 06 สิงหาคม 2014, 17:08:31 »

ควรเอา function calculator ไปไว้ข้างนอกหรือบนๆก็ได้ครับ

ตามท่านนี้ครับ  wanwan016
บันทึกการเข้า

ใครต้องการเช่าโฮสที่มี Control Panel ดีๆ
และ Support ดี แนะนำ => โฮสอะตอม
maridb204
ก๊วนเสียว
*

พลังน้ำใจ: 7
ออฟไลน์ ออฟไลน์

กระทู้: 227



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 06 สิงหาคม 2014, 17:11:44 »

ลองเปลี่ยนเป็น ตัวแปล perprice  แทนครับ   ผ่าน 100 %
บันทึกการเข้า

iC1assicTh
สมุนแก๊งเสียว
*

พลังน้ำใจ: 48
ออฟไลน์ ออฟไลน์

กระทู้: 640



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 06 สิงหาคม 2014, 17:44:42 »

ผมงงว่าเขียนให้มันซับซ้อนทำไมหว่า - -* รึทั่วไปเข้าเขียนแบบนี้กันนะ ไม่ค่อยได้ดูวิธีคนอื่นเขียน แฮ่ะๆ  wanwan012
บันทึกการเข้า

ninwatza
คนรักเสียว
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 184



ดูรายละเอียด
« ตอบ #6 เมื่อ: 06 สิงหาคม 2014, 18:20:24 »

ขอบคุณครับ พอดีผมทำตาม หนังสือ

แต่ในหนังสือมันไม่มี isset ผมทำตามแล้วมันก็ขึ้น notice ผมก็เลยเอา isset เข้าไปใส่ก็เลยเป็นแบบนั้นครับฮ่าๆ
บันทึกการเข้า
max30012540
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 196
ออฟไลน์ ออฟไลน์

กระทู้: 1,307



ดูรายละเอียด
« ตอบ #7 เมื่อ: 06 สิงหาคม 2014, 18:25:02 »

ผมแนะนำให้แยกไฟล์ออกมา เป็นไฟรวมเป็นฟังก์ชั่นเลยดีกว่าครับ ถ้าจะใช้ค่อย include เข้ามา จะทำให้เรียกใช้งานได้หลายครั้งโดยแก้ไขครั้งเดียว
บันทึกการเข้า
ossytong
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 138
ออฟไลน์ ออฟไลน์

กระทู้: 1,149



ดูรายละเอียด
« ตอบ #8 เมื่อ: 06 สิงหาคม 2014, 18:28:22 »

ผมแนะนำให้เข้าไปที่ Control Panel -> Uninstall -> เลือก NetBeans แล้วกด UnInstall ออกครับ

 wanwan004 wanwan004 wanwan004

จริงๆให้เปลี่ยนจาก isset  เป็น !empty แทนครับ

การใช้ isset จะทำให้เกิด Notice ขึ้นมาครับ
« แก้ไขครั้งสุดท้าย: 06 สิงหาคม 2014, 18:29:14 โดย ossytong » บันทึกการเข้า
xvlnw.com
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 493
ออฟไลน์ ออฟไลน์

กระทู้: 5,905



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 06 สิงหาคม 2014, 18:35:53 »

ผมแนะนำให้เข้าไปที่ Control Panel -> Uninstall -> เลือก NetBeans แล้วกด UnInstall ออกครับ

 wanwan004 wanwan004 wanwan004

จริงๆให้เปลี่ยนจาก isset  เป็น !empty แทนครับ

การใช้ isset จะทำให้เกิด Notice ขึ้นมาครับ


เข้าใจอะไรระหว่าง isset กับ empty ผิดไปหรือเปล่าครับ

โค๊ด:
<?php
$data 
'';
if(empty(
$data)) echo '$data IS NULL<br>';
if(isset(
$data)) echo '$data is create, This not Error Notic<br>';
?>
บันทึกการเข้า

ossytong
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 138
ออฟไลน์ ออฟไลน์

กระทู้: 1,149



ดูรายละเอียด
« ตอบ #10 เมื่อ: 06 สิงหาคม 2014, 19:31:43 »

ผมแนะนำให้เข้าไปที่ Control Panel -> Uninstall -> เลือก NetBeans แล้วกด UnInstall ออกครับ

 wanwan004 wanwan004 wanwan004

จริงๆให้เปลี่ยนจาก isset  เป็น !empty แทนครับ

การใช้ isset จะทำให้เกิด Notice ขึ้นมาครับ


เข้าใจอะไรระหว่าง isset กับ empty ผิดไปหรือเปล่าครับ

โค๊ด:
<?php
$data 
'';
if(empty(
$data)) echo '$data IS NULL<br>';
if(isset(
$data)) echo '$data is create, This not Error Notic<br>';
?>

ผมเข้าใจดีครับ เรื่องนี้

การทำงานของ empty ภายในจะเป็น (!isset ... || ... == "")
เราสามารถใช้ !empty แทน isset ได้อยู่แล้วครับ

เพราะเวลาใช้  isset เฉยๆกับตัวแปร array มันจะฟ้อง notice ขึ้นมาครับ ว่าไม่เจอ index ของ array นั้นก่อน ที่จะมีการ pass &value เข้า function
ประสบการณ์เลยสอนผมว่า ทางเลี่ยงคือใช้  !empty กับกรณีแบบนี้แทน จะทำให้ ไม่เกิด notice ขึ้นมา

เพรายังไง การส่งค่าจาก form $_POST['submit'] มันจะต้องมีค่าในฟอร์มอยู่แล้ว (บรรทัดที่ 22)
จุดประสงค์ของ code ที่ จขกท. เขียนก็เพื่อเช็คว่า มีการ POST ใช่มั้ย ??

เลยเขียนแบบนั้น ดังนั้นการใช้ !empty ก็ตอบโจทย์จุดประสงค์การทำงานได้เช่นเดียวกันครับ

ส่วนเพิ่มเติมสำหรับ จขกท. function Cal... ที่อยู่ใน if นั้น ให้เอาออกมาไว้ข้างนอกได้เลยครับ ไม่จำเป็นต้องอยู่ในนั้น จะสวยกว่า แนะนำทำเป็น functions.php แล้วเอา function ไปใส่ไว้ในนั้นแล้ว require มาใช้งาน ตั้งแต่หัวไฟล์ หรือ ในไฟล์ config ได้เลย

จะได้ถูกตาม Concept DRY + SRP ^^
« แก้ไขครั้งสุดท้าย: 06 สิงหาคม 2014, 19:41:40 โดย ossytong » บันทึกการเข้า
xvlnw.com
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 493
ออฟไลน์ ออฟไลน์

กระทู้: 5,905



ดูรายละเอียด เว็บไซต์
« ตอบ #11 เมื่อ: 06 สิงหาคม 2014, 23:30:01 »

^
^
^

สิ่งที่ผมต้องการจะสื่อคือ มันใช้งานคนละอย่างกันครับ
isset = สร้างหรือยัง
empty = มีค่าหรือเปล่า ไม่ได้สนใจว่าจะสร้างหรือไม่สร้าง เพราะว่ามันก็ต้องสร้างอยู่แล้ว ถึงจะมีค่า

ในการใช้งานจริงๆ แน่นอนว่ามันก็ใช้งานแทนกันได้ในบางลักษณะ แต่สิ่งที่ผมอยากจะแนะนำก็คือ !empty vs isset ผมแนะนำ isset ครับ เพราะว่ามัน processing เพียงแค่ครั้งเดียว
แต่หากต้องการจะเช็คด้วย ว่าค่ามันว่างหรือเปล่า การเขียน if(isset($data) and $data != '') แน่นอนว่ามันก็ไม่ได้ต่างอะไรกับ !empty แต่จากโค๊ดที่ จขกท. เขียนมา ก็เพียงแค่เช็คว่ามีการ POST หรือเปล่าแค่นั้นเองครับ

ส่วนประเด็นที่สำคัญของ Notic มันคือ Error ที่บอกถึง "การไม่ได้สร้างตัวแปรนั้นๆ" ถ้าจะกล่าวถึง Error Notic ก็ต้องใช้ isset ดีที่สุดครับ เพราะเช็คว่าสร้างหรือยัง?
บันทึกการเข้า

ninwatza
คนรักเสียว
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 184



ดูรายละเอียด
« ตอบ #12 เมื่อ: 07 สิงหาคม 2014, 00:23:15 »

อ๋อครับผมลงใช้ !empty มันก็ใช้ได้น่ะครับ : )

โอเคครับ ผมใช้ isset ต่อไป   Lips Sealed

แล้วผมจะต้องใช้ !empty หรือ isset ในโอกาสไหนดีครับ  Tongue
« แก้ไขครั้งสุดท้าย: 07 สิงหาคม 2014, 00:33:28 โดย ninwatza » บันทึกการเข้า
Synchronize
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 83
ออฟไลน์ ออฟไลน์

กระทู้: 1,230



ดูรายละเอียด
« ตอบ #13 เมื่อ: 07 สิงหาคม 2014, 01:09:05 »

empty มันจะตรวจสอบได้ลึกกว่าอยู่หน่อยนึง แค่นั้น น่ะครับ

ก็เอาไว้ใช้ในโอกาศที่ ต้องการ หน่อยนึงที่ว่า  เช่น

$a = array();

มันจะได้ผล แบบนี้

isset($a) = true
!empty($a) = false

และพวก string "" ว่างๆ หรือ ค่า 0 ถ้าเข้า empty ก็เป็น true หมด เหมือนกัน เพราะมันถือเป็นค่าว่าง

แต่ปกติ ผมจะตรวจสอบว่า ตัวแปล ที่จะตรวจมีค่า 0 รึป่าว  ผมก็ $a == 0 ไปเลย ตรงๆ นะ

แต่ถ้าเราใช้ empty ตรวจ  ถึงแม้ ตัวแปลนั้น ยังไม่ได้ถูกสร้างขึ้นมา มันก็ จะไม่ warn

(ซึ่ง ผมยังไม่เคยเจอกรณี ที่ต้องตรวจแบบนี้)

 wanwan017
บันทึกการเข้า

ossytong
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 138
ออฟไลน์ ออฟไลน์

กระทู้: 1,149



ดูรายละเอียด
« ตอบ #14 เมื่อ: 07 สิงหาคม 2014, 01:10:28 »

อ๋อครับผมลงใช้ !empty มันก็ใช้ได้น่ะครับ : )

โอเคครับ ผมใช้ isset ต่อไป   Lips Sealed

แล้วผมจะต้องใช้ !empty หรือ isset ในโอกาสไหนดีครับ  Tongue

อยู่ที่ประสบการณ์ของแต่ละคนครับ เจอเคสมามากแค่ไหน เห็นปัญหาจากแต่ละเคสมาแค่ไหน
ในมิติตื้นๆ การท่องจำ ตามที่เค้าเขียนๆมากัน มันก็อาจจะเห็นปัญหาของการใช้งานไม่ครบถ้วน...
บางเหตุการณ์ มันมี ตัวแปรอื่นๆที่จะบอกเราจะสอนเราว่าเราควรจะใช้อะไร...  ในสถานการร์แบบไหน

แต่เพื้นฐานราก็จะต้องรู้ก่อนว่า แต่ละอันเบื้องหลังมันทำงานยังไง ....


โดยวิธีที่ จขกท. เขียน ผมก็ใช้แนวนี้เป็นตัวดักการ เช็ค $_POST เวลาผม HardCode แล้ว โยนค่าเข้าไฟล์ตัวเองผมก็จะใช้วิธินี้ครับ
แต่ปัญหาคือ เมื่อ up ขึ้น Production บางเคสเจอประเด็นที่ว่าการใช้ isset กับตัวแปล $_POST ในลักษณะการกำหนด key(แบบของ จขกท.) จะส่งผลให้เกิด Notice warning ขึ้นมา
ดังนั้นการใช้ !empty จึงสามารถป้องกัน  case นี้ได้

ประสบการณ์ตรงนี้เลยบอกว่าผม ในเมื่อมันใช้ได้ เหมือนกัน แต่ไม่ส่งผลอะไรกับความเร็วของ php เลย การใช้ตัวที่ Safety ที่สุดในจุดประสงค์ของ code เราที่สุดก็น่าจะโอเครกว่าการใช้ isset แล้วต้องมาระแวงว่า Production Server นี้มันจะเกิด Notice มั้ยว้าาา... (มีผลมาจาก php.ini รวมถึง version ของ php การปิด error และ การ control ไฟล์นี้ หลายๆที่ Production Server เราเองไม่มีสิทจะเข้าไปกำกับตรงนี้ได้ทั้งหมด)

ยังไงการใช้ isset หรือ !empty ไม่ส่งผลอะไรกับความเร็วที่ควรจะสนใจเลยครับ มันเล็กน้อย หยุมหยิมมากๆ มีเรื่องอื่นที่ใหญ่กว่านี้ ควรจะกังวลกว่าอีกเยอะครับ 

แต่การใช้ววิธีแบบนี้ผมก็ใช้สำหรับการเขียนไฟล์เดียวสั้นๆ เวลา HardCode ไรงี้มันง่ายและเร็ว ผมเลยชอบการใช้วิธีแบบนี้ ^^

แต่เดี๋ยวนี้ ถ้า app เล็กๆ ไม่กี่หน้าผมก็เลือกใช้ slim framework + eloquent ORM เอา
App ใหญ่ๆก็ใช้ Laravel

ก็จะไม่เจอ case แนวนี้และ เพราะใช้ ความสามารถของ famework แต่ละตัวไป
แล้วจะ get มากขึ้นว่ามันมีเรื่องอื่นๆให้ กังวลกว่าเรื่อง isset , !empty เยอะครับ ^^

ป.ล. เรื่อง isset , !empty มันไม่ได้คนละอย่างกันแบบสุดขั้วถึงขนาดบอกว่า แบบนั้นแบบนี้ได้หรอกครับ ทำความเข้าใจ เบื้องหลังการทำงานแล้วเลือก apply ให้เข้ากับจุดประสงค์ อัลกอริธึม เราเหมาะสมที่สุดครับ ไม่ต้องซีเรียสประเด็นอะไรพวกนี้มาก มีอีกหลายๆเรื่องที่ควรกังวลมากกว่าเยอะ


« แก้ไขครั้งสุดท้าย: 07 สิงหาคม 2014, 01:22:02 โดย ossytong » บันทึกการเข้า
xvlnw.com
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 493
ออฟไลน์ ออฟไลน์

กระทู้: 5,905



ดูรายละเอียด เว็บไซต์
« ตอบ #15 เมื่อ: 07 สิงหาคม 2014, 01:32:27 »

^
^
^
ผมเข้าใจกับสิ่งที่ท่านพยายามอธิบายนะครับ เพราะมันก็เป็นส่วนเล็กๆจริงๆอย่างที่ว่านั่นแหละ

แต่ที่ผมอยากถามคือ Notice Warning เมื่อใช้กับ isset ผมขอตัวอย่างโค๊ดมาศึกษา จะขอบคุณมากครับ

จากประสบการณ์ของผมคือ ไม่เคยเจอเมื่อใช้ isset แล้วจะมี Notice Warning ครับ

 wanwan017 wanwan017
บันทึกการเข้า

MapTwoZa
ก๊วนเสียว
*

พลังน้ำใจ: 75
ออฟไลน์ ออฟไลน์

กระทู้: 366



ดูรายละเอียด
« ตอบ #16 เมื่อ: 07 สิงหาคม 2014, 01:46:07 »


ทั้ง empty และ isset มันทำให้ไม่แสดง notice ทั้ง 2 แบบแหละครับ

ประเด็นคือ ควรใช้อย่างไหนมากกว่ากัน

ถ้าถามผม ผมตอบว่า empty ครับ

เพราะอะไร เพราะ empty ใช้ได้กับทั้ง string แล้วก็ตัวแปลอื่นๆด้วยครับ
"" (an empty string)
0 (0 as an integer)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
var $var; (a variable declared, but without a value in a class)


การที่มานั่งไล่ code แล้วเจอ if(isset($data) and $data != '')  หรือ if(isset($data) and count(data) > 0 )  หรือเคสอื่นๆอีก ตามประเภทด้านบน
เทียบกับเจอ if ( empty($data) )
ผมเลือกอย่างหลัง

เหตุผลประกอบมี 2 เหตุผลครับ
1. code convention
2. ทำแบบนี้ อาจจะมี bug แอบแฝงมาได้ครับ
บันทึกการเข้า

Good code quality Developer Cheesy
xvlnw.com
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 493
ออฟไลน์ ออฟไลน์

กระทู้: 5,905



ดูรายละเอียด เว็บไซต์
« ตอบ #17 เมื่อ: 07 สิงหาคม 2014, 01:54:31 »

^
^
^

ในลักษณะเช็คค่าของตัวแปรด้วย ผมก็จะเลือกใช้ empty ครับ

แต่ถ้าไม่เช็คค่ามัน ก็ isset ครับ (ตั้งแต่ผมพิมพ์มาตั้งแต่แรก ผมบอกอยู่แล้วว่าเอาไว้เช็คว่าตัวแปรมันถูกสร้างหรือยัง? แค่นั้นครับ)

แน่นอนว่าผมก็เลือกใช้ แต่ก็ยังมีข้อสงสัยจากคุณ ossytong บอกว่า isset จะทำให้เกิด Error Notice ในบางกรณี ซึ่งผมไม่เคยเจอจริงๆนะครับ  ><
บันทึกการเข้า

smapan
Global Moderator
เจ้าพ่อบอร์ดเสียว
*****

พลังน้ำใจ: 643
ออฟไลน์ ออฟไลน์

กระทู้: 8,269



ดูรายละเอียด เว็บไซต์
« ตอบ #18 เมื่อ: 07 สิงหาคม 2014, 09:15:54 »

อ๋อครับผมลงใช้ !empty มันก็ใช้ได้น่ะครับ : )

โอเคครับ ผมใช้ isset ต่อไป   Lips Sealed

แล้วผมจะต้องใช้ !empty หรือ isset ในโอกาสไหนดีครับ  Tongue

น่าจะใช่ที่ถาม
http://stackoverflow.com/quest...why-check-both-isset-and-empty
บันทึกการเข้า

จูมล่าโฮส สยามโฮสเว็บ modty.com
รวมที่พัก เช่ารายวัน ที่พักเช่ารายเดือนมากที่สุดแจ่มจริง
***Tel 083-757-1515 ติดปัญหา Joomla ตรงไหนรับปรึกษาฟรี โทรมาเถอะครับ ถ้าตอบได้ช่วยแน่นอน ไม่มีกั้ก. ***
ossytong
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 138
ออฟไลน์ ออฟไลน์

กระทู้: 1,149



ดูรายละเอียด
« ตอบ #19 เมื่อ: 07 สิงหาคม 2014, 12:12:10 »

อ๋อครับผมลงใช้ !empty มันก็ใช้ได้น่ะครับ : )

โอเคครับ ผมใช้ isset ต่อไป   Lips Sealed

แล้วผมจะต้องใช้ !empty หรือ isset ในโอกาสไหนดีครับ  Tongue

น่าจะใช่ที่ถาม
http://stackoverflow.com/quest...why-check-both-isset-and-empty

อธิบายชัดเจนดีครับ ผมมองเหมือนกับ User : diEcho ที่ตอบในความเห็นสุดท้ายครับ สำหรับ case ของ จขกท. คือ case นี้เลยครับ (โยนเข้า page แล้ว submit มีค่าแน่นอน)

ป.ล. ผมยืนยันว่า มันมี case ที่ ใช้ isset กับ $_POST แบบถูกกำหนด index มาแล้วส่งผลให้เกิด Notice ได้ครับ แต่จำไม่ได้ว่าเกิดใน php version ไหน แล้วอยู่ในรูปแบบ env อะไรบ้าง นานมากแล้วสำหรับการเขียนแบบ HardCode แบบนี้ ด้วยความที่ Production มาหลาย env ทั้ง Ubuntu, CentOS, IIS ver, other  เก่าๆบ้างใหม่ๆบ้าง  ติดตั้งทั้ง เอกชน - ราชการ มาหลายองกรค์ เคยปรากฏเคสนี้ขึ้นจน เป็นเหตุให้ผม เปลี่ยจาก isset มาเป็น !empty สำหรับกรณี code ประมาณนี้

 ไม่แน่ใจว่าเป็นที่ bug ของ php version นั้นๆ หรือเป็นที่ env หรือเป็นที่ php.ini แต่ยังไงซะ สำหรับผมผม make sure ที่สุดคือการเลือกใช้ !empty ก็เป็นการ make sure สำหรับสถานการณ์ code แบบนี้ได้มากกว่าอยู่ดี 

กรณีนี้ จะใช้ isset หรือ จะใช้ !empty มันก้ไม่มีอะไรผิดอยู่ดี ก็ทำงานได้ทั้ง 2 แบบ
ถ้าเข้าใจการทำงานของมัน ก็ไม่เห็นว่าจะมีประเด็นอะไร... ที่จะต้องพูดให้มากมาย
(ถ้าเรื่องแค่นี้ยังยาวขนาดนี้ สงสัย Repository Concept, Facade, PSR-0,4 การเลือกใช้ OOP Pattern จะขนาดไหน ^^)
มันก็แค่ function นึงที่มาตอบสนองอัลกอ หรือเจตนาของการใช้ code  อยู่ดี

จะเลือกใช้อะไรก็ จะ isset, !empty มันก็คือเครื่องๆมือที่มาตอบสนองอัลกอของเราทั้งนั้น ก็ตามถนัด
ตาม ประสบการณ์ของที่เจอมา ถ้าเข้าเข้าใจ การทำงานของมัน ก็ไม่มีประเด็นอะไรหรอก
มันตอบโจทย์ อัลกอได้ สามารถเขียน Test Case ได้ ก็ เวิคทั้งนั้น วันนึงเจอปัญหา เจออะไรมากขึ้น เลือก เครื่องมือมาใช้ มาแทนที่ได้ ก็ โอเคร
« แก้ไขครั้งสุดท้าย: 07 สิงหาคม 2014, 12:44:40 โดย ossytong » บันทึกการเข้า
ninwatza
คนรักเสียว
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 184



ดูรายละเอียด
« ตอบ #20 เมื่อ: 07 สิงหาคม 2014, 12:46:32 »

ขอบคุณทุกท่านมากครับ

ผมรู้สึกปลื้ม ที่มี เทพphp หลายๆท่านมาร่วมตอบข้อสงสัย

เอาเป็นว่าผมใช้ !empty ในโอกาสที่ผมต้องการเช็คว่า ก่อนจะ $_POST ไปกดปุ่ม submit มีค่าแล้วหรือยังถ้ายังไม่มีก็ไม่ต้องทำ แต่ถ้ามีก็ทำ

ถ้า isset ไว้ตรวจสอบว่ามันสร้างมาแล้วหรือยังตัวแปรนี้มีค่าหรือไม่มีค่าก็เท่ากันแค่อยากรู้ว่ามันสร้างมาแล้วหรือยัง
ถ้าสร้างแล้วก็ทำ ถ้ายังไม่สร้างก็ไม่ต้องทำ



ฉะนั้นส่วนใหญ่จึงเลือกใช้ !empty มากกว่า เพราะมันตรวจสอบได้ลึกกว่า

ผมเข้าใจถูกไหมครับ
บันทึกการเข้า
หน้า: 1 2 [ทั้งหมด]   ขึ้นบน
พิมพ์