在HOME模块下的Controller文件下直接创建TravelController.class.php文件。代码如下:
<?php
namespace Home\Controller;
use Think\Controller;
class TravelController extends Controller{
public function index(){
echo __ROOT__.'<br>';
// 没有输出
echo __FILE__.'<br>';
// 输出为/home/improvcn/domains/improvcn.com/public_html/Home/Home/Controller/TravelController.class.php
echo __CLASS__.'<br>';
// 输出Home\Controller\TravelController
echo __COMPILER_HALT_OFFSET__.'<br>';
// 输出__COMPILER_HALT_OFFSET__
echo __DIR__.'<br>';
// 输出 /home/improvcn/domains/improvcn.com/public_html/Home/Home/Controller
echo __FUNCTION__.'<br>';
// 输出index
echo __LINE__.'<br>';
// 输出15
echo __METHOD__.'<br>';
// 输出Home\Controller\TravelController::index
echo __NAMESPACE__.'<br>';
// 输出Home\Controller
echo __TRAIT__.'<br>';
// 输出__TRAIT__
echo _PHP_FILE_.'<br>';
// 输出/index.php
}
}
上述为笔者在自己网站根目录下测试的输出。
对于ThinkPHP中的相关预定义常量的解析如下:
__ROOT__ // 在thinkphp.php中定义
__FILE__ // 输出当前文件的路径
__CLASS__ // 输出当前文件的类
__COMPILER_HALT_OFFSET__ //未定义,暂不清楚
__DIR__ //当前文件所处的路径
__FUNCTION__ //当前函数名
__LINE__ //当前所在的行数
__METHOD__ //当前方法名 相较于__FUNCTION__更详细
__NAMESPACE__ //当前命名空间
__TRAIT__ //未定义,暂不清楚
__PHP_FILE_ //暂不清楚