火冰狐 发表于 2017-3-28 15:45:04

九个PHP很有用的功能(1)

  
来源:http://coolshell.cn/?p=2394
下面是九个PHP中很有用的功能,不知道你用过了吗?

1. 函数的任意数目的参数

你可能知道PHP允许你定义一个默认参数的函数。但你可能并不知道PHP还允许你定义一个完全任意的参数的函数
下面是一个示例向你展示了默认参数的函数:



// 两个默认参数的函数
function foo($arg1 = '', $arg2 = '') {
echo "arg1: $arg1\n";
echo "arg2: $arg2\n";
}
foo('hello','world');
/* 输出:
arg1: hello
arg2: world
*/
foo();
/* 输出:
arg1:
arg2:
*/

 现在我们来看一看一个不定参数的函数,其使用到了?func_get_args()方法:



// 是的,形参列表为空
function foo() {
// 取得所有的传入参数的数组
$args = func_get_args();
foreach ($args as $k => $v) {
echo "arg".($k+1).": $v\n";
}
}
foo();
/* 什么也不会输出 */
foo('hello');
/* 输出
arg1: hello
*/
foo('hello', 'world', 'again');
/* 输出
arg1: hello
arg2: world
arg3: again
*/

 

2. 使用 Glob() 查找文件

很多PHP的函数都有一个比较长的自解释的函数名,但是,当你看到?glob() 的时候,你可能并不知道这个函数是用来干什么的,除非你对它已经很熟悉了。
你可以认为这个函数就好?scandir() 一样,其可以用来查找文件。



// 取得所有的后缀为PHP的文件
$files = glob('*.php');
print_r($files);
/* 输出:
Array
(
=> phptest.php
=> pi.php
=> post_output.php
=> test.php
)
*/

 你还可以查找多种后缀名



// 取PHP文件和TXT文件
$files = glob('*.{php,txt}', GLOB_BRACE);
print_r($files);
/* 输出:
Array
(
=> phptest.php
=> pi.php
=> post_output.php
=> test.php
=> log.txt
=> test.txt
)
*/

 你还可以加上路径



$files = glob('../images/a*.jpg');
print_r($files);
/* 输出:
Array
(
=> ../images/apple.jpg
=> ../images/art.jpg
)
*/

 如果你想得到绝对路径,你可以调用?realpath() 函数:



$files = glob('../images/a*.jpg');
// applies the function to each array element
$files = array_map('realpath',$files);
print_r($files);
/* output looks like:
Array
(
=> C:\wamp\www\images\apple.jpg
=> C:\wamp\www\images\art.jpg
)
*/

 


3. 内存使用信息

观察你程序的内存使用能够让你更好的优化你的代码。
PHP 是有垃圾回收机制的,而且有一套很复杂的内存管理机制。你可以知道你的脚本所使用的内存情况。要知道当前内存使用情况,你可以使用?memory_get_usage() 函数,如果你想知道使用内存的峰值,你可以调用memory_get_peak_usage() 函数。



echo "Initial: ".memory_get_usage()." bytes \n";
/* 输出
Initial: 361400 bytes
*/
// 使用内存
for ($i = 0; $i < 100000; $i++) {
$array []= md5($i);
}
// 删除一半的内存
for ($i = 0; $i < 100000; $i++) {
unset($array[$i]);
}
echo "Final: ".memory_get_usage()." bytes \n";
/* prints
Final: 885912 bytes
*/
echo "Peak: ".memory_get_peak_usage()." bytes \n";
/* 输出峰值
Peak: 13687072 bytes
*/

 
页: [1]
查看完整版本: 九个PHP很有用的功能(1)