Tôi đang cố chuyển một biến từ tệp này sang tệp khác. Điều này là không làm việc trừ khi tôi tuyên bố biến là toàn cục trong tệp thứ hai bao gồm. Tuy nhiên, tôi không cần khai báo nó như là toàn cầu trong tệp đang gọi bao hàm đầu tiên. Ví dụ:Chuyển một biến từ một tệp php bao gồm tệp khác: toàn cục chứ không phải
front.inc:
$name = 'james';
index.php:
include('front.inc');
echo $name;
include('end.inc');
đầu ra: james
e nd.inc:
echo $name;
đầu ra: không có gì
NẾU Tôi tuyên bố tên $ toàn cầu trước khi lặp lại tên $ trong end.inc, sau đó nó hoạt động đúng cách. Câu trả lời được chấp nhận cho bài đăng này giải thích rằng điều này phụ thuộc vào cấu hình máy chủ của bạn: Passing variables in PHP from one file to another
Tôi đang sử dụng máy chủ Apache. Làm thế nào tôi có thể cấu hình nó để khai báo $ name thành global là không cần thiết? Có lợi thế/bất lợi so với cái kia không?
bao gồm không thích chức năng. bao gồm không phá vỡ phạm vi biến. nó giống như bạn sao chép dán nội dung tệp bao gồm trực tiếp vào tập lệnh gọi. – dqhendricks
là tiếng vang trong end.inc trong một hàm? – dqhendricks
sẽ phá vỡ phạm vi biến. và trong trường hợp đó, có lẽ bạn nên chuyển tên $ vào hàm trong một đối số. – dqhendricks