函数

PHP中函数名不区分大小写,可以有默认参数,可以定义参数类型和返回值类型(php7以后)。

简单定义

function foo($arg_1, $arg_2, /* ..., */ $arg_n)
{
    echo "Example function.\n";
    return $retval;
}

静态变量

[运行代码]

function test($v)
{
    static $pool = array();
    $pool[] = $v;
    return count($pool);
}

for($i = 0; $i < 3; $i++){
    echo test($i), "\n";
}

[执行结果]

1
2
3

匿名函数

匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。当然,也有其它应用的情况。

匿名函数目前是通过 Closure 类来实现的。


[运行代码]

$message = 'a';
$example = function () use ($message) {
    var_dump($message);
};
$message = "b";
echo $example();

[执行结果]

string(1) "a"

引用传值

[运行代码]

function test(&$a, $b)
{
    $a = 10;
    $b = 20;
}

$a = 1;
$b = 2;
test($a, &$b);
var_dump($a, $b);

[执行结果]


Fatal error: Call-time pass-by-reference has been removed; If you would like to pass argument by reference, modify the declaration of test(). in /data/lab/3y8d2h80/index.php on line 10

总结,引用不能放在调用的地方,因为我们未来是要升级到5.6的。这个是实际我们的代码发现的case,如果还有人有这个习惯,尽早改了吧。

看下另外一段代码

[运行代码]

$arr = array(
    1,
    2,
    3
);
foreach ($arr as & $val) {
    $val+= $val % 2 ? $val++ : $val--;
}
$val = 0;
//输出结果
print (implode('', $arr));

[执行结果]

330

常用函数列表

分析

  1. 最常用的PHP函数是字符串函数,然后是数组,然后是文件。
  2. 请点击每个函数的链接去仔细看它的文档,比如count函数的第二个参数,你会更好的了解这些函数。
  3. 以上100个函数没有近期要丢弃的计划。
  4. 在非内置库中,mbstring排名第一、curl第二,然后是gd、filter和iconv。
  5. 加密函数中md5仍然排名第一,然后是Sha1。
  6. array、echo、print、empty、isset这些没有纳入此排名,它们的使用度肯定是非常高的。
  7. 数据库操作也不纳入此排名。
  8. PHP在文件这里,对于文件的读取要远远大于写入。
  9. 使用键排序要比使用值排序更频繁。

参考链接

参见

安装配置 安装 php.ini php-fpm.conf
基础 简介 历史 基本语法 函数
数据类型 string number boolean object array
面向对象 class abstract interface trait
文件操作 file excel csv word pdf json xml yaml
应用 mysql memcache sqlite nosql postgresql mongodb redis kafka etcd sphinx solr elasticsearch

rsyslog queue log gd imagick ffmpeg

扩展 extension curl pdo swoole
PHP框架 yaf yii laravel cakephp zend thinkphp