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

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

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingขอถามข้อสงสัยหน่อยครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ขอถามข้อสงสัยหน่อยครับ  (อ่าน 1749 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
pugkung
Verified Seller
หัวหน้าแก๊งเสียว
*

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

กระทู้: 2,681



ดูรายละเอียด เว็บไซต์
« เมื่อ: 16 ตุลาคม 2007, 02:47:59 »

.inc.php มันต่างยังไงกับ .php เฉย ๆ

require_once กับ include มันใช้ต่างกันยังไงครับ

สงสัยสองอันนี้ละครับ เพราะว่า โค้ดที่ผมใช้อยู่เนี่ย ไม่ว่าจะใช้อันได้ ก็ได้ผลลัพธ์เหมือนกัน

ผมดูไม่ออกกว่ามันแตกต่างกันตรงไหน นอกจาก ชื่อมัน ...  Cheesy
บันทึกการเข้า

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

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

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #1 เมื่อ: 16 ตุลาคม 2007, 04:05:15 »

เอาเท่าที่รู้นะครับ

.inc.php ตั้งไว้ให้เรารู้น่ะคับ ว่าไฟล์นี้ถูกเรียกใช้โดย include()

include = ให้นำไฟล์ที่ระบุมาใช้ในการประมวลผลด้วย ถ้าหาไฟล์ไม่พบให้แสดง error และข้ามไปบรรทัดต่อไป
include_once = ให้นำไฟล์ที่ระบุมาใช้ในการประมวลผลด้วย แต่ว่าไฟล์ที่ระบุนี้จะสามารถถูกเรียกใช้ได้เพียง 1 ครั้งต่อการประมวลผล 1 ครั้งเท่านั้น ถ้าหาไฟล์ไม่พบให้แสดง error และข้ามไปบรรทัดต่อไป
require = ให้นำไฟล์ที่ระบุมาใช้ในการประมวลผลด้วย ถ้าหาไฟล์ไม่พบให้แสดง error และหยุดการทำงานทันที
require_once = ให้นำไฟล์ที่ระบุมาใช้ในการประมวลผลด้วย แต่ว่าไฟล์ที่ระบุนี้จะสามารถถูกเรียกใช้ได้เพียง 1 ครั้งต่อการประมวลผล 1 ครั้งเท่านั้น ถ้าหาไฟล์ไม่พบให้แสดง error และหยุดการทำงานทันที

**การ include_once และ require_once เพื่อป้องกันการผิดพลาดในการประมวลของโปรแกรม เช่น ตัวแปรที่ include หรือ require เข้ามาครั้งแรกผ่านกระบวนการประมวลและมีการเปลี่ยนปแลงค่าตัวแปรไปแล้ว หากมีการ include หรือ require ซ้ำอาจทำให้ ค่าตัวแปรคลาดเคลื่อนได้ และอาจส่งผลถึงการทำงานโดยรวมของโปรแกรมได้

ความรู้งูๆปลาๆ รู้เท่านี้แหละคับ
« แก้ไขครั้งสุดท้าย: 16 ตุลาคม 2007, 04:08:31 โดย ball6847 » บันทึกการเข้า

pugkung
Verified Seller
หัวหน้าแก๊งเสียว
*

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

กระทู้: 2,681



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 16 ตุลาคม 2007, 11:07:23 »

ว้าว กระจ่างขึ้นเยอะเลยครับ

งู ๆ ปลา ๆ ก็ ดีกว่าผมที่ไม่รู้อะไรเลยละครับ ขอบคุณที่แบ่งปันความรู้ครับ

ว่าแต่ อีกเรื่องได้ไหม

คือไม่เข้าใจ ประมวลผล 1 ครั้ง คือปกติมันก็ไม่ได้ ประมวลผล 1 ครั้งเหรอครับ หรือ ผมเข้าใจอะไรผิดไป

ส่วน inc.php มีไว้ช่วยจำใช่ไหมครับ  Embarrassed
บันทึกการเข้า

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

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

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #3 เมื่อ: 16 ตุลาคม 2007, 11:16:46 »

ว้าว กระจ่างขึ้นเยอะเลยครับ

งู ๆ ปลา ๆ ก็ ดีกว่าผมที่ไม่รู้อะไรเลยละครับ ขอบคุณที่แบ่งปันความรู้ครับ

ว่าแต่ อีกเรื่องได้ไหม

คือไม่เข้าใจ ประมวลผล 1 ครั้ง คือปกติมันก็ไม่ได้ ประมวลผล 1 ครั้งเหรอครับ หรือ ผมเข้าใจอะไรผิดไป

ส่วน inc.php มีไว้ช่วยจำใช่ไหมครับ  Embarrassed

ก็คือในสคริปท์ นึงจากเรียกใช้ include_once หรือ require_once ไฟล์ซ้ำกันไม่ได้อ่ะคับ คือไฟล์นึงเรียกได้แค่ครั้งเดียวอ่ะคับ ผมอาจจะใช้ศัพท์เว่อร์ไปหน่อยมั้ง แห่ะๆ  Tongue

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

ฉันไม่มีตัวตน
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 4,817



ดูรายละเอียด
« ตอบ #4 เมื่อ: 16 ตุลาคม 2007, 11:29:39 »

สนุกมากเลยครับ ชักอยากเขียนเองเป็นแล้วสิ(ตอนนี้ใช้ของคนอื่นๆมารวมกันอยู่ ฮาๆ)...
บันทึกการเข้า
meeudon
ก๊วนเสียว
*

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

กระทู้: 204



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 16 ตุลาคม 2007, 11:32:08 »

ขอบคุณครับ
บันทึกการเข้า

pugkung
Verified Seller
หัวหน้าแก๊งเสียว
*

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

กระทู้: 2,681



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 16 ตุลาคม 2007, 11:41:29 »

อืมจะว่าไป ผมก็ไม่เคย include ไฟล์ ซ้ำกันซักที เลยไม่ได้สังเกตุ ขอบคุณมากครับ

แต่ว่า include กับ require นี้ ต่างกันแค่ การที่เจอ error แล้วทำงานต่อ กับไม่ทำงาน ต่อแค่นั้นหรือปล่าวครับ

มันจะมีผลอะไรกับ server ที่รัน scrip หรือปล่าวครับ เช่น include ทำงานได้ดีกว่า หรือ require ทำงานได้ ไว้กว่า

แล้วการทำงาน แบบไหนเหมาะกับ include หรือ require มากกว่า กัน


แหะ ๆ ถาม เยอะไปปล่าวครับเนี่ย ....  Tongue
บันทึกการเข้า

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

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

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #7 เมื่อ: 16 ตุลาคม 2007, 13:21:47 »

ดูภาพเลยละกัน ชัดเจน ชัวร์

อันนี้ include_once แล้วไม่เจอไฟล์

โค๊ด:
<?php

include_once('some-file.inc');

print 
'This is the line next-to Error from including non-exists file.';

?>


อันนี้ผลลัพธ์



ต่อไป require_once แล้วไม่เจอไฟล์

โค๊ด:
<?php

require_once('some-file.inc');

print 
'This is the line next-to Error from including non-exists file.';

?>

นี่คือผลลัพธ์



จะสังเกตุได้ว่า include_once จะยังทำงานบรรทัดต่อไป แต่ require_once จะหยุดทำงานทันที
สังเกตุดูจาก Error ที่แสดงจากการ include และ require ไฟล์ - php จะตรวจสอบจาก path 2 ครั้งคือ ครั้งที่ 1 จะตรวจจาก path ที่เราระบุลงไป ,หากไม่เจอ php จะไปตรวจสอบที่ path ของ pear (สำหรับเครื่องที่ลง pear) หากไม่เจอทั้ง 2 ทีก็จะแสดง Error ขึ้นมาตามภาพ ( สังเกตุดูที่ Error ของ require_once จะพบ php ระบุว่าเป็น fatal error ซึ่งเป็ฯ error ที่บอกว่าสคริปท์จะหยุดทำงาน )



ต่อไปคือการ include ซ้ำ 2 ครั้ง

โค๊ด:
<?php

include('debug.php');

print 
'<br /><br />';

include(
'debug.php');

?>

นี่คือผลลัพธ์
*หมายเหตุ - ไฟล์ที่ผมเรียกเข้ามามีอยู่จิงนะคับ เป็นไฟล์เอาไว้ตรวจว่า PHP โหลด MySQL กะ Curl เข้ามารึยัง



ต่อไปคือ include_once 2 ครั้ง

โค๊ด:
<?php

include_once('debug.php');

print 
'<br /><br />';

include_once(
'debug.php');

?>

นี่คือผลลัพธ์



จะสังเกตุได้ว่า การ include ครั้งที่ 2 ไม่ทำงานแล้ว เพราะว่าเราใช้ include_once เพื่อกัน script ทำงานซ้อนกันนั่นเอง
บันทึกการเข้า

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

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

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #8 เมื่อ: 16 ตุลาคม 2007, 13:30:08 »

ต่ออีกนิดเรื่อง ความแตกต่าง ผมว่าความเร็ว และความไว ไม่น่าจะต่างกันมาก

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

แต่ถ้าสคริปท์อันนไหนที่ไม่มีแล้วระบบสามารถทำงานได้อย่างไม่กระทบกระเทือนอะไรมาก อย่างเช่นเราจะใช้ สคริปท์นอกเข้ามาเสริมซึ่งเป็ฯสคริปท์ที่ไม่เกี่ยวกับการทำงานหลักของสคริปท์เลย ผมก็จะใช้ include แต่ว่าจะเพิ่ม error control ด้วยการใส่เครื่องหมาย @ เข้าไปหน้า include เช่น @include('spidertracker.php') หากมีข้อผิดพลาดสคริปท์อื่นๆ จะยังสามารถทำงานได้ปกติ แล้วจะไม่แสดง Error ด้วย

จบคับ !!
บันทึกการเข้า

sniperth2
ก๊วนเสียว
*

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

กระทู้: 201



ดูรายละเอียด
« ตอบ #9 เมื่อ: 16 ตุลาคม 2007, 13:58:25 »

ขอบคุณครับ ก็ใช้ include อยู่เหมือนกััน เพิ่งรู้ว่ามันต่างจาก require อย่างนี้เอง  Wink
บันทึกการเข้า
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 12,516



ดูรายละเอียด
« ตอบ #10 เมื่อ: 16 ตุลาคม 2007, 18:38:13 »

น่าปักหมุดไว้นะเนี่ย มีคนถาม 3-4 รอบแล้วล่ะ

แค่เรื่องนี้เรื่องเดียว  Tongue
บันทึกการเข้า

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

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

กระทู้: 5,006



ดูรายละเอียด เว็บไซต์
« ตอบ #11 เมื่อ: 16 ตุลาคม 2007, 18:49:47 »

 Smiley บอร์ดเสียว ดีตรงนี่แหล่ะครับ มีความรู้เด็ดๆ มาแบ่งปันกันเสมอ  Angry พวกนายแน่มาก!
บันทึกการเข้า
youcanberich
หัวหน้าแก๊งเสียว
*

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

กระทู้: 2,803



ดูรายละเอียด
« ตอบ #12 เมื่อ: 16 ตุลาคม 2007, 18:50:29 »

อธิบายเข้าใจง่ายดีครับ ขอบคุณมากครับ
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์