Có một sence để làm một cái gì đó giống như
$dir = realpath(dirname(__FILE__));
// or for php 5.3+:
$dir = realpath(__DIR__)
Hoặc hằng kỳ diệu như DIR và FILE luôn trả về đường dẫn tuyệt đối, vì vậy realpath là không cần thiết?
Có một sence để làm một cái gì đó giống như
$dir = realpath(dirname(__FILE__));
// or for php 5.3+:
$dir = realpath(__DIR__)
Hoặc hằng kỳ diệu như DIR và FILE luôn trả về đường dẫn tuyệt đối, vì vậy realpath là không cần thiết?
Bạn không cần realpath()
.
Các tài liệu của __FILE__
:
Đường dẫn đầy đủ và tên tập tin của tập tin. Nếu được sử dụng bên trong bao gồm, tên của tệp được bao gồm sẽ được trả lại. Kể từ PHP 4.0.2,
__FILE__
luôn chứa đường dẫn tuyệt đối với các liên kết được giải quyết trong khi ở các phiên bản cũ hơn có chứa đường dẫn tương đối trong một số trường hợp.
Vì vậy __FILE__
trả về một đường dẫn tuyệt đối =>realpath()
không cần thiết
Và nếu bạn sử dụng __DIR__
:
Thư mục của tập tin. Nếu được sử dụng bên trong bao gồm, thư mục của tệp được bao gồm sẽ được trả lại. Điều này tương đương với tên đệm (
__FILE__
). Tên thư mục này không có dấu gạch chéo theo sau trừ khi đó là thư mục gốc. (Added trong PHP 5.3.0.)
__DIR__
cũng trả về một đường dẫn tuyệt đối vì dirname()
không cắt đứt phần tuyệt đối của con đường __FILE__
=>realpath()
không cần thiết
Hãy ghi nhớ 'realpath 'vẫn hữu ích trong các tình huống mà bạn sẽ sử dụng kết quả' __DIR__' hoặc '__FILE__' làm tiền tố cho một URI. Ví dụ '$ include = realpath (__ DIR__. '/ Path/to/file');' Tuy nhiên như câu trả lời mô tả bằng cách sử dụng realpath chỉ với '__FILE__' hoặc' __DIR__' là thừa. – fyrye