PHP 5.5安装时候会默认编译Zend OPcache做为OPCache,并默认开启OPCache.
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 }
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();
function test_false() { return false; } if (empty(test_false())) { echo "output something."; }
$users = [ ['Foo', 'Bar'], ['Baz', 'Qux'], ]; foreach ($users as list($firstname, $lastname)) { echo "First name: $firstname, last name: $lastname."; }
echo "hello"[1]; echo [1,2,3,4][3];
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()等函数。
此外还新增一些有用的扩展函数/方法:
对比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