Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
423 views
in Technique[技术] by (71.8m points)

php - How to use __dir__?

I want to use __dir__.

However, I can't find any good tutorial on how to set it up. I have my htdocs in Dropbox.

Does it work something like this?

 define(__DIR___, 'd:documents/dropbox/yolo/swag/htdocs/myproject/test/newtest/
 testphp/test_new/testincludes/1/new_folder/')

That is the directory where my project is located and it has sub folders. I want to include a file into another file that is in the parent folder.

Should I then just type:

 include'__DIR__/warlock.php'; 

Or do I have to type something like this?

 include '___DIR__/wow/newb/guidesfornabz/classes/casters/warlock.php'; 
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can use __DIR__ to get your current script's directory. It has been in PHP only since version 5.3, and it's the same as using dirname(__FILE__). In most cases it is used to include another file from an included file.

Consider having two files in a directory called inc, which is a subfolder of our project's directory, where the index.php file lies.

project
├── inc
│?? ├── file1.php
│?? └── file2.php
└── index.php

If we do include "inc/file1.php"; from index.php it will work. However, from file1.php to include file2.php we must do an include relative to index.php and not from file1.php (so, include "inc/file2.php";). __DIR__ fixes this, so from file1.php we can do this:

<?php
include __DIR__ . "/file2.php";

To answer your question: to include the file warlock.php that is in your included file's upper directory, this is the best solution:

<?php
include __DIR__ . "/../warlock.php";

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...