level 2
Only安小弦巜
楼主
今天我们要介绍一些关于改善和优化PHP代码的提示和技巧。请注意,这些PHP技巧适用于初学者,而不是那些已经在使用MVC框架的人。
1.不要使用相对路径,要定义一个根路径
这样的代码行很常见:
require_once('../../lib/some_class.php');
这种方法有很多缺点:
它首先搜索php包括路径中的指定目录,然后查看当前目录。因此,会检查许多目录。
当一个脚本被包含在另一个脚本的不同目录中时,它的基本目录变为包含脚本的目录。
另一个问题是,当一个脚本从cron运行时,它可能不会将它的父目录作为工作目录。
所以使用绝对路径便成为了一个好方法:
define('ROOT' , '/var/www/project/');
require_once(ROOT . '../../lib/some_class.php');
//rest of the code
这就是一个绝对路径,并且会一直保持不变。但是,我们可以进一步改善。目录/var/www/project可以变,那么我们每次都要改吗?
不,使用魔术常量如__FILE__可以让它变得可移植。请仔细看:
//suppose your script is /var/www/project/index.php
//Then __FILE__ will always have that full path.
define('ROOT' , pathinfo(__FILE__, PATHINFO_DIRNAME));
require_once(ROOT . '../../lib/some_class.php');
//rest of the code
所以现在,即使你将项目转移到一个不同的目录,例如将其移动到一个在线的服务器上,这些代码不需要更改就可以运行
2017年12月19日 15点12分
1
1.不要使用相对路径,要定义一个根路径
这样的代码行很常见:
require_once('../../lib/some_class.php');
这种方法有很多缺点:
它首先搜索php包括路径中的指定目录,然后查看当前目录。因此,会检查许多目录。
当一个脚本被包含在另一个脚本的不同目录中时,它的基本目录变为包含脚本的目录。
另一个问题是,当一个脚本从cron运行时,它可能不会将它的父目录作为工作目录。
所以使用绝对路径便成为了一个好方法:
define('ROOT' , '/var/www/project/');
require_once(ROOT . '../../lib/some_class.php');
//rest of the code
这就是一个绝对路径,并且会一直保持不变。但是,我们可以进一步改善。目录/var/www/project可以变,那么我们每次都要改吗?
不,使用魔术常量如__FILE__可以让它变得可移植。请仔细看:
//suppose your script is /var/www/project/index.php
//Then __FILE__ will always have that full path.
define('ROOT' , pathinfo(__FILE__, PATHINFO_DIRNAME));
require_once(ROOT . '../../lib/some_class.php');
//rest of the code
所以现在,即使你将项目转移到一个不同的目录,例如将其移动到一个在线的服务器上,这些代码不需要更改就可以运行