最新PHP中9个必须知道的实用函数及功能应用

以下是三零网为大家整理的最新PHP中9个必须知道的实用函数及功能应用的文章,希望大家能够喜欢!

即使使用 PHP 多年,也会偶然发现一些未曾了解的函数和功能。其中有些是非常有用的,但没有得到充分利用。并不是所有人都会从头到尾一页一页地阅读手册和函数参考!
1、任意参数数目的函数

你可能已经知道,PHP 允许定义可选参数的函数。但也有完全允许任意数目的函数参数的方法。以下是可选参数的例子:
 


// function with 2 optional arguments
function foo($arg1 = '', $arg2 = ''){
   
    echo "arg1: $arg1\n";
    echo "arg2: $arg2\n";
   
    }

foo('hello', 'world');
/**
 prints:
 arg1: hello
 arg2: world
 */

foo();
/**
 prints:
 arg1:
 arg2:
 */

 


 

现在让我们看看如何建立能够接受任何参数数目的函数。这一次需要使用 func_get_args() 函数:


// yes, the argument list can be empty
function foo(){
   
    // returns an array of all passed arguments
    $args = func_get_args();
   
    foreach ($args as $k => $v){
        echo "arg" . ($k + 1) . ": $v\n";
        }
   
    }

foo();
/**
 prints nothing
 */

foo('hello');
/**
 prints
 arg1: hello
 */

foo('hello', 'world', 'again');
/**
 prints
 arg1: hello
 arg2: world
 arg3: again
 */

 


 

2、使用 Glob() 查找文件

许多 PHP 函数具有长描述性的名称。然而可能会很难说出 glob() 函数能做的事情,除非你已经通过多次使用并熟悉了它。可以把它看作是比 scandir() 函数更强大的版本,可以按照某种模式搜索文件。
 


// get all php files
$files = glob('*.php');

print_r($files);
/**
 output looks like:
 Array
 (
 [0] => phptest.php
 [1] => pi.php
 [2] => post_output.php
 [3] => test.php
 )
 */

 


 

 

你可以像这样获得多个文件:


// get all php files AND txt files
$files = glob('*.{php,txt}', GLOB_BRACE);

print_r($files);
/**
 output looks like:
 Array
 (
 [0] => phptest.php
 [1] => pi.php
 [2] => post_output.php
 [3] => test.php
 [4] => log.txt
 [5] => test.txt
 )
 */

 


 

请注意,这些文件其实是可以返回一个路径,这取决于查询条件:


$files = glob('../p_w_picpaths/a*.jpg');

print_r($files);
/**
 output looks like:
 Array
 (
 [0] => ../p_w_picpaths/apple.jpg
 [1] => ../p_w_picpaths/art.jpg
 )
 */

 


 

如果你想获得每个文件的完整路径,你可以调用 realpath() 函数:


$files = glob('../p_w_picpaths/a*.jpg');

// applies the function to each array element
$files = array_map('realpath', $files);

print_r($files);
/**
 output looks like:
 Array
 (
 [0] => C:\wamp\www\p_w_picpaths\apple.jpg
 [1] => C:\wamp\www\p_w_picpaths\art.jpg
 )
 */

转载来自:http://www.q3060.com/list3/list117/283.html