直接贴测试代码:

本文实例讲述了PHP中__FILE__、dirname与basename用法。分享给大家供大家参考。具体方法如下:

本文实例讲述了php魔术变量用法,其中__DIR__是php5.3新增的,分享给大家供大家参考。具体用法分析如下:

 代码如下

在php中__FILE__当前运行文件的完整路径和文件名,如果用在被包含文件中,则返回被包含的文件名,这是一个魔法变量(预定义常量),我们可以通用dirname与basename来获取文件目录或文件名.

系统常量

class MoShu{
 public function moshu() {
  echo ‘当前类名:’ . __CLASS__ . “<br />”;
  echo ‘当前方法名:’ . __FUNCTION__ . “<br />”;
  echo ‘当前文件中所在的行数:’ . __LINE__ . “<br />”;
  echo ‘当前文件绝对路径:’ . __FILE__ . “<br />”;
  echo ‘当前文件所在的绝对路径的文件夹:’ . __DIR__ . “<br
/>”;
  echo ‘返回类名::方法名:’ . __METHOD__ . “<br />”;
 }
}

一、__FILE__与dirname(__FILE__)与basename(__FILE__)使用:

__FILE__ 当前文件名
__LINE__ 当前行数
__FUNCTION__ 当前函数名
__CLASS__ 当前类名
__METHOD__ 当前对象的方法名

$moshu = new moshu();
$moshu->moshu();

通常在配置文件路径的时候用dirname(__FILE__)是非常有效的方法,但是因为__FILE__的路径是当前代码所在文件(而不是url所在文件)完整路径,所以定义配置文件通常要放在根目录下定义网站的根地址,但是下面的方法可以解决配置文件的存放问题,代码如下:

详细分析

结果如下:

复制代码 代码如下:

1. __FILE__

当前类名:MoShu
当前方法名:moshu
当前文件中所在的行数:10
当前文件绝对路径:D:\xampp\htdocs\test\moshu.php
当前文件所在的绝对路径的文件夹:D:\xampp\htdocs\test
返回类名::方法名:MoShu::moshu
当前类名:MoShu
当前方法名:moshu
当前文件中所在的行数:10
当前文件绝对路径:D:\xampp\htdocs\test\moshu.php
当前文件所在的绝对路径的文件夹:D:\xampp\htdocs\test
返回类名::方法名:MoShu::moshu

dirname(dirname(__FILE__));

文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自
PHP 4.0.2 起,__FILE__
总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。 
PHP 常量dirname(__file__) 
__FILE__
:被称为PHP魔术常量,返回当前执行PHP脚本的完整路径和文件名,包含一个绝对路径 

假设__FILE__为 /home/web/config/config.php,上面的方法输出为
/home/web 

1)dirname(__FILE__) 函数返回的是脚本所在在的路径。 更新网络 
比如文件 b.php 包含如下内容: 

dirname(dirname(__FILE__));得到的是文件上一层目录名

复制代码 代码如下:

dirname(__FILE__);得到的是文件所在层目录名

<?php  
$basedir = dirname(__FILE__);  
echo $basedir 
//将在页面打印出一个这个文件所在绝对路径! 
?>

假设现在的目录及文件结构如下,我们所要测试的变量在wp_smtp_admin.php文件中:

 
我做的测试得到结果: E:websiteothertestcms 
这个相当于, asp中的server.mappth的用法 
如果b.php被其他目录里的a.php文件require 或者 include 去引用的话。
变量$basedir 的内容还是b.php所在的那个文件夹的路径。
而不是变成a.php文件所在的目录。

wp-content\plugins\wp-smtp\wp-smtp.php

2)dirname(__FILE__)
一般会返回文件所的当前目录到系统根目录的一个目录结构。 
不会返回当前的文件名称。 dirname(__FILE__) 也可能返回一个 .
(当前目录) [原因是 b.php 文件在 http.conf 或者 PHP
配置开发环境的默认WEB目录下

wp-content\plugins\wp-smtp\wp_smtp_admin.php

复制代码 代码如下:

wp-content\plugins\wp-smtp\img\blq_32_32.jpg

<?php
/**
在你的公用的配置文件中,来设置你的根目录,这样就不用担心经常搬家了。
*/
define(‘ROOT_PATH’, dirname(__FILE__) . DIRECTORY_SEPARATOR);
echo ROOT_PATH;
echo “<br>”;
echo __FILE__;
echo “<br>”;
echo dirname(__FILE__);
echo “<br>”;
echo dirname(dirname(__FILE__));
?>

测试结果如下,代码如下:

2. __LINE__

复制代码 代码如下:

文件中的当前行号。这个变量在调试错误的时候,还是比较有作用的,其他的时候,没什么用处,纯属个人观点。

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注