新人奮闘記 1
- 2016年6月16日
- 他の話題, Web Service
先日コードを眺めていると、このような記述を目にしてしまった
新人君です。
dirname(__FILE__). “/”;
ん?ファイルパスが略されている!?
意味が分からないので、とりあえずマニュアルを読んでみると、うんたらかんたら。
正直あまりピンとは来なかった!
やっぱりそういう時は、実際にイジってみるのがいいかという事で
とりあえず分解してみます。
検証 1
「dirname()」関数内の引数に使われている、「__FILE__」
PHPで定義済みの定数、マジック定数と呼ばれるものです。
どうやらマニュアルを見てみると、~ファイルのフルパスとファイル名が返されると書いてある。
今回はxampp上にて実行してみる事にします。
ディレクトリは、localhost/workspace/FreeWrite/index.php
index.php
echo __FILE__;
出力結果1
C:\xampp\htdocs\workspace\FreeWrite\index.php
しっかりと実行もとのファイルが
フルパスで表示されています。
検証2
index.php
echo __FILE__dirname(__FILE__);
出力結果2
C:\xampp\htdocs\workspace\FreeWrite
指定したファイルの親ディレクトリが返されています。
お気づきの通り、(\)がありません。
実際これだと、FreeWrite直下のファイルにはアクセスできないので
dirname(__FILE__).”\”; とするのですね。
対象ファイルのパスを毎回、たどっていると、環境の変化があった場合、
わざわざパスを記述し直さなければいけない。そんな手間
を省く事ができそうです。
またdirname(__FILE__)と同等の結果を得られる、マジック定数
__DIR__がphp5.3から追加されました。
こちらも実行してみます。
index.php
echo dirname(__FILE__).”<br>”;
echo __DIR__.”\”;
出力結果3
C:\xampp\htdocs\workspace\FreeWrite
C:\xampp\htdocs\workspace\FreeWrite\
確かに同じ意味となりました。
今後、後者が主流になるでのしょうか、積極的に使っていきたいですね。
keny
admin at 2016年06月16日 10:00:09