PHP 教程 在线

2599PHP 可用的函数

return preg_replace(array('/(<br\s*\/?>){3,}/i','/(&nbsp;){3,}/i'),'\\1',$str);

//for example

function mynl2br($str='',$is_xhtml=false){

    $str = nl2br($str,$is_xhtml);

    return preg_replace(array('/(<br\s*\/?>){3,}/i','/(&nbsp;){3,}/i'),'\\1',$str);

}

2554PHP preg_match_all() 函数

protected function getAllLinks($str,$mustHas="",$mustNoHas=""){

    $links = array();

    preg_match_all("/(href)\s*=\s*[\'\"]?(([[a-z]{3,5}:\/\/(([.a-zA-Z0-9-])+(:[0-9]+)*))*([+:%\/\?~=&;\\\(\),._a-zA-Z0-9-]*))(#[.a-zA-Z0-9-]*)?[\'\" ]?(\s*rel\s*=\s*[\'\"]?(nofollow)[\'\"]?)?/i", $str, $regs);

    foreach($regs[2] as $link){        

        if(!empty($mustHas) && (stripos($link,$mustHas)===false)){continue;}                

        if(!empty($mustNoHas) &&  (stripos($link,$mustHas)!==false)){continue;}

        $links[]=$link;

    }

    return $links;

}

254814PHP 7 Session 选项

php7 以前,我们使用 session 前都是要先代用 session_strat() 函数来初始化的,但这个函数是没有参数可以传的,session 的配置都在 php.ini 文件中。

在 php7 后 session_start() 可以接受一个 array 作为参数, 用来覆盖 php.ini 文件中设置的会话配置选项。

session_start([
   'cache_limiter' => 'private', //在读取完毕会话数据之后马上关闭会话存储文件
    'cookie_lifetime'=>3600,   //SessionID在客户端Cookie储存的时间,默认是0,代表浏览器一关闭SessionID就作废
    'read_and_close'=>true   //在读取完会话数据之后, 立即关闭会话存储文件,不做任何修改
]);
$_SESSION['name']='quan';
echo $_SESSION['name'];

25472PHP NULL 合并运算符

?? 与 ?: 的区别

$a = 10;
var_dump($a ?? "a"); // 相当于: isset($a) ? $a : 'a' => 输出 10  
var_dump($a ?: "b"); // 相当于: $a ? $a : 'a' =>输出 10

如果:

$a = false;
var_dump($a ?? "a"); // 相当于: isset($a) ? $a : 'a' => 输出 false
var_dump($a ?: "b"); // 相当于: $a ? $a : 'a' =>输出 10

2546PHP 7 新特性PHP 7+ 版本极大地改进了性能,在一些WordPress基准测试当中,性能可以达到PHP 5.6的3倍。PHP 7+ 版本新加特性如下表所示:序号内容1PHP 标量类型与返回值类型声明

对于标量类型声明:在严格模式下,有一种例外的情况是:当函数参数为float时,传入int型变量不会跑出typeerror,而是正常执行,在返回类型声明中,也是同样的:

<?php
declare(strict_types = 1);
function test (float $inter) {
    return $inter;
}

echo test(2); // 结果为2

function test1(int $inte) : float{
    return $inte;
}
echo test1(1); // 结果为1
?>