Constant scalar expressions
Constant scalar expressions có nghĩa là cho phép bạn thực hiện một biểu thức ở bất kỳ nơi nào, giờ đây bạn muốn thực hiện một biểu thức tại hằng số (constant) hoặc khởi tạo tham số cho function hay một kiểu khác trở nên dễ dàng hơn.
<?php
const SO_A = 2;
const SO_B = SO_A * 2 + 1;
const SO_C = SO_B * 2;
class Operator {
public function outNumber($number = SO_A * SO_C)
{
$result = "";
for ($i = 1; $i < $number / SO_A; $i++) {
$result.= "Từ ".$i." đến 10 <br/>";
}
return $result;
}
}
echo (new Operator)->outNumber();
#Variadic functions via …
Trước kia bạn muốn lấy những tham số truyền vào cho một hàm một cách ngẫu nhiên thì bạn phải sử dụng 2 functions: func_get_arg, func_num_args. Nhưng với PHP 5.6x thì bạn có thể thực hiện nó một cách ngắn gọn hơn đó là dùng “…” thêm ba chấm vào trước $var mà bạn khởi tạo ở function.
<?php
function getNumber(...$numbers)
{
$total = 0;
foreach ($numbers as $number) {
$total += $number;
}
return $total;
}
getNumber(1,2,3,4,5,6,7,8,9)The way new define array with []
Đây là cách khai báo một mảng mới từ phiên bản PHP 5.4x trở lên, nó giúp bạn khai báo một mảng ngắn gọn hơn nhiều so với trước đây :)
<?phpArgument unpacking via …
// before
$author = array('Demon Warlock', 'Võ Minh Mẫn', 'Clackken Smith', 'Mr. Nav');
// now
$author = ['Demon Warlock', 'Võ Minh Mẫn', 'Clackken Smith', 'Mr. Nav'];
Điều này cho phép bạn tách rời các phần tử có trong một mảng để chuyển thành tham số cho một hàm để sử dụng chúng. Ví dụ ta có 2 phần từ trong mảng $numbers là 2 và 3 khi ta sử dụng …$numbers chúng ta sẽ có hai tham số $b = 2 và $c = 3.
<?phpExponentiation via **
function totalNumber($a, $b, $c)
{
return $a + $b + $c;
}
$numbers = [2, 3];
echo totalNumber(5, ...$numbers);
Trước đây khi tính luỹ thừa của một số, bạn thường dùng hàm pow(2,3) tham số thứ 1 là số nguyên và tham số thứ 2 là số mũ thì giờ mình có cách viết ngắn gọn hơn nữa đó là dùng “**”
<?phpNamespace – use function and use const
printf("2 ** 3 == %d", 2 ** 3);
Namespace? nó là gì thì có thể một số bạn newbie sẽ chưa biết nó là gì thì có thể xem ở đây. Phiên bản mới này đã cập nhật thêm 2 tính năng mới cho Namespace đó là dùng một hàm hoặc một hằng số trong một Namespace khác mà không cần phải khởi tạo nó.
<?phpNew function hash_equals()
// file namespace_one.php
namespace Izwebz\App;
class IzwebzApp {
const IZWEBZ_APP = "Izwebz.com";
public function izwebz()
{
echo "Izwebz - Học thiết kế web theo chuẩn";
}
}
// file namespace_two.php
require_once('namespace_once.php');
use const Izwebz\App\IzwebzApp\IZWEBZ_APP;
use function Izwebz\App\IzwebzApp\izwebz;
echo IZWEBZ_APP;
izwebz();
Nó giúp bạn so sánh hai chuỗi được mã hoá bởi hàm crypt(), PHP support họ khuyên rằng bạn nên sử dụng nó để giảm thiểu sự tấn công từ bên ngoài vào để đánh cắp CSDL của bạn.
<?php
$expected = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$correct = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$incorrect = crypt('1234', '$2a$07$usesomesillystringforsalt$');
var_dump(hash_equals($expected, $correct)); // true
var_dump(hash_equals($expected, $incorrect)); // false
Nguồn : iZweb.Com
Đăng nhận xét