新人奮闘記 1

先日コードを眺めていると、このような記述を目にしてしまった
新人君です。

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




アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム