 |
สอบถามเกี่ยวกับการใช้ require, include การอ้างอิงไฟล์ต่าง ๆ ของไฟล์ php |
|
 |
|
|
 |
 |
|
ไม่ต้อง include ซ้ำถูกแล้ว
ส่วนที่บอกว่าเอาออกแล้ว error
ก็ต้องดูว่า error ว่าอะไร
การป้องกัน include ซ้ำ อาจใช้ include_once/require_once
https://stackoverflow.com/a/38055866
|
 |
 |
 |
 |
Date :
2022-12-09 19:17:39 |
By :
009 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
/ /require("../config/fileConn.php");
require("tmpHeader.php");
--------------------------------------------
Notice: Undefined variable: tmpHeader.php in /var/www/html/app/trainingrecord/filePHP/FileA.php on line 8
Warning: require(): Filename cannot be empty in /var/www/html/app/trainingrecord/filePHP/FileA.php on line 8
Fatal error: require(): Failed opening required '' (include_path='.:/usr/local/lib/php') in /var/www/html/app/trainingrecord/filePHP/FileA.php on line 8
------------------------------
น่าจะต้องไปแก้ไขที่ตัว config ของ php ตรงอักษรสีดำ ใช่หรือไม่ครับ??
|
 |
 |
 |
 |
Date :
2022-12-09 22:44:02 |
By :
pukmtec |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
relative path จะมีปัญหา เมื่อมีการ include หลายชั้น
แก้โดยใช้ absolute path หรือ __DIR__
require(): Filename cannot be empty
แสดงว่า
require("tmpHeader.php");
หาไฟล์ไม่เจอ php มองเป็น
require
หรือ
require();
จึงเกิด error ดังกล่าว
*พวก include/require ถ้าไฟล์ที่ดึงมาไม่มีการ return value ให้เขียนแบบ statement
ไม่ต้องเรียกแบบ function
ส่วน Undefined variable ถ้าเกิดจากการ include แก้โดยประกาศตัวแปรนั้นเป็น global
แต่ไม่ใช่สำหรับกรณีนี้ เพราะ เป็นผลกระทบต่อเนื่องจาก include หา path ไม่เจอ
|
 |
 |
 |
 |
Date :
2022-12-10 06:02:13 |
By :
009 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณพี่ๆ มาก ๆ ครับ
แต่ผมเองก็ไม่ค่อยจะเก่งเลย อ่านแล้วยัง งง งง ว่า
ผมจะแก้ตรงไหน แก้อย่างไร ขอคำแนะนำ สอน ผมด้วยครับ
ขอบพระคุณอย่างสูงมาก ๆ ครับผม
|
 |
 |
 |
 |
Date :
2022-12-13 17:08:52 |
By :
pukmtec |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
สิ่งที่ควรจำ
การ include คือการเอา code มาแทรก มาต่อกัน
ถ้า code ที่เขียน มี function หรือ class ชื่อเดียวกัน
จะเกิด error declare duplicate function(ประมาณนี้ จำ error message ไม่ได้แล้ว) ซึ่งเป็น critical error โปรแกรมจะหยุดการทำงาน
ถ้ามี function หรือ class ให้เขียนไว้ที่หนึ่ง อย่านำไปผสม กับ คำสั่ง ปกติ
และให้ใช้ include_once ในการสั่งใช้งาน เพื่อป้องกันการ ประกาศ function หรือ class ซ้ำ
ซึ่ง function หรือ class เมื่อประกาศแล้ว สามารถใช้ ทุกที่ของโค๊ดทั้งหมด เรียกซ้ำตัวมันเองก็ยังได้ (ระวัง loop ไม่รู้จบด้วยล่ะ)
ที่นี้ พวก โค๊ดธรรมดา ที่ไม่ใช้ function ถ้าเรา ใช้ include_once
ถ้าเจอไฟล์นี้ครั้งแรก ก็จะต่อโค๊ดให้ แต่ถ้าเจอครั้งต่อๆ ไป มันก็จะไม่ต่อ code ให้ เพราะเป็นการกำหนด ให้เรียกครั้งเดียว มันก็จะเกิดช่องว่าง ของโค๊ด ไม่ผ่านคำสั่ง ที่ต้องการ
คือมันจะหายไปเลย
เพราะฉนั้นเลือกใช้ ให้ถูกต้อง จะ include กี่ครั้งก็จะไม่มีปัญหา
|
 |
 |
 |
 |
Date :
2022-12-14 20:49:15 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|