php 5.5_技术|PHP 5.5新特性

默认开启OPCache

PHP 5.5安装时候会默认编译Zend OPcache做为OPCache,并默认开启OPCache.

PHP语言的一些改变

function getLinesFromFile($fileName) {

if (!$fileHandle = fopen($fileName, 'r'))

{

throw new RuntimeException('Couldn\'t open file "' . $fileName . '"');

}

while (false !== $line = fgets($fileHandle))

{

yield $line;

}

fclose($fileHandle);

}

foreach (getLinesFromFile($fileName) as $line)

{

// do something

}

增加finally关键字

try {

echo '1';

throw new Exception();

} catch (Exception $e) {

echo '2';

} finally {

echo '3';

}

完全限定类名

使用ClassName::class可以获得”完全限定类名”(fully qualified class name)

namespace Foo\Bar;

class One {

const A = self::class;

const B = Two::class;

}

class Two extends One {

public static function run()

{

var_dump(self::class);

var_dump(static::class);

var_dump(parent::class);

}

}

var_dump(One::class);

$class = One::class;

$x = new $class;

var_dump($x);

$two = Two::class;

(new $two)->run();

empty( )函数允许直接调用函数

function test_false() {

return false;

}

if (empty(test_false()))

{

echo "output something.";

}

foreach中使用list( )

$users = [

['Foo', 'Bar'],

['Baz', 'Qux'],

];

foreach ($users as list($firstname, $lastname)) {

echo "First name: $firstname, last name: $lastname.";

}

常量寻址(Constant dereferencing)-访问常量内元素

echo "hello"[1];

echo [1,2,3,4][3];

标准库或函数/方法的一些改变

增加密码哈希API

password hashing api的函数:password_get_info(), password_hash(),password_needs_rehash(),password_verify()

$receved_password = "zrwmpassword";

$pass_hash = password_hash($receved_password, PASSWORD_DEFAULT);

var_dump(password_get_info($pass_hash));

if (password_verify($receved_password, $pass_hash)) {

echo 'Password is valid';

} else {

echo 'Invalid password';

}

新增加的一些函数

PHP Core还新增了array_column(),boolval(),json_last_error_msg(),cli_get_process_title()等函数。

此外还新增一些有用的扩展函数/方法:

MySQLi

mysqli_begin_transaction()

mysqli_release_savepoint()

mysqli_savepoint()

Intl

IntlDateFormatter::formatObject()

IntlDateFormatter::getCalendarObject()

IntlDateFormatter::getTimeZone()

IntlDateFormatter::setTimeZone()

cURL

cURL新增一些函数,其中curl_file_create()函数或CURLFile类都可以创建CURLFile对象,实现文件的上传功能.

新增的类/接口

对比DateTime与DateTimeImmutable的一个简单例子:

function printUTC1(DateTime $dt) {

$dt->setTimeZone(new DateTimeZone('UTC'));

echo $dt->format(DateTime::ATOM) . PHP_EOL;

}

function printUTC2(DateTimeImmutable $dt)

{

$dt->setTimeZone(new DateTimeZone('UTC'));

echo $dt->format(DateTime::ATOM) . PHP_EOL;

}

$dt = new DateTime('now');

printUTC1($dt); // 2013-06-28T05:58:49+00:00

$dt = new DateTimeImmutable('now');

printUTC2($dt); // 2013-06-28T13:58:49+08:00

过期与删除的特性

不再支持Windows XP和 Windows Server 2003

扩展mysql过期,需使用MySQLi或PDO_MySQL

preg_replace /e 修饰符过期

删除Logo GUIDs

intl扩展的一些方法/函数过期

IntlDateFormatter::setTimeZoneID()和datefmt_set_timezone_id()现在已经过期.可以分别使用IntlDateFormatter::setTimeZone()和datefmt_set_timezone().

mcrypt扩展的一些函数过期

mcrypt_cbc(),mcrypt_cfb(),mcrypt_ecb(),mcrypt_ofb()等函数过期

linisi.svg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值