codetc - 网站开发技术 首页 后端 PHP 查看内容

PHP内置常量PHP_EOL和DIRECTORY_SEPARATOR

2015-5-19 13:36| 发布者: CODETC| 查看: 2070| 评论: 0

PHP是一种跨平台的语言,由于需要考虑不同平台的兼容性问题,PHP本身内置了很多常量,比如常用的 E_ERROR 、E_ALL、E_NOTICE、__FILE__等等,在方便编写代码的同时也很好地处理了不同平台下的一些兼容性问题,提升系统的健壮性。这里我们主要介绍一下PHP_EOL和DIRECTORY_SEPARATOR。


PHP_EOL

PHP_EOL是php系统源码中定义好的一个换行符常量,相对于DIRECTORY_SEPARATOR来说,PHP_EOL的使用可能会较少。


为什么会有这么一个常量? 因为在不同的系统中,换行符是不一样的。比如: unix系列用 \n windows系列用 \r\n mac用 \r


于是php中就定义了 PHP_EOL,这个常量会根据平台而变,以提高代码的源代码级可移植性。


<?php
echo PHP_EOL;
//windows平台相当于   
echo "\r\n";
//unix\linux平台相当于   
echo "\n";
//mac平台相当于   
echo "\r";


DIRECTORY_SEPARATOR

php的内置常量 DIRECTORY_SEPARATOR 是一个显示系统分隔符的命令,不需要任何定义与包含即可直接使用。


众所周知,在windows下路径分隔符是\(当然/在部分系统上也是可以正常运行的),在linux上路径的分隔符是/,这就导致了一个问题,比如开发机器是windows,有一个图片上传程序,调试机器上指定的上传文件保存目录是:


define('ROOT', dirname(__FILE__)."\upload");

在本地调试都很正常,但是上传到linux服务器后就会出错。所以如上代码严谨的写法为:


define('ROOT', dirname(__FILE__).DIRECTORY_SEPARATOR."upload");

提示:PHP中我们可以使用函数get_defined_constants()来获取所有的PHP常量,例如:


<?php
print_r(get_defined_constants()); //get_defined_constants()返回所有常量数组
文章来源 CODETC,欢迎分享,转载请注明地址: http://www.codetc.com/article-196-1.html

最新评论

 作为游客发表评论,请输入您的昵称

返回顶部