Computer >> Máy Tính >  >> Lập trình >> PHP

Cú pháp biến thống nhất trong PHP 7


Trong các phiên bản PHP cũ hơn, chúng tôi gặp phải vấn đề không nhất quán. Ví dụ:$ {$ first [‘name’]}. Cú pháp này có thể tạo ra sự nhầm lẫn hoặc chúng ta có thể nói rằng cú pháp không nhất quán. Để khắc phục sự cố không nhất quán, PHP 7 đã thêm cú pháp mới có tên là “Cú pháp biến thống nhất”.

Cú pháp biến thống nhất đánh giá các biến từ trái sang phải. Chúng ta cần thêm dấu ngoặc nhọn để sử dụng cú pháp biến thống nhất. Ví dụ,

echo ${$first[‘name’]};

Cú pháp biến thống nhất cho phép kết hợp các toán tử và nó cũng có thể phá vỡ tính tương thích ngược trong một số biểu thức bất cứ nơi nào sử dụng các đánh giá cũ hơn.

Ví dụ

<?php
   $x = (function() {
      return 20 - 10;
      })
   ();
   echo "$x\n";
?>

Đầu ra

Đầu ra cho chương trình PHP trên sẽ là:

10

Lưu ý: Chương trình trên sẽ ngay lập tức gọi biểu thức hàm.

Cú pháp biến thống nhất sử dụng kết hợp mới của cú pháp hiện có. Ví dụ,

$foo([‘bar’])();

Cú pháp biến thống nhất có thể bỏ tham chiếu các ký tự trong các chuỗi được trả về bởi các hàm.

[$obj, $obj1] [0]->pro;

Trong một số trường hợp, PHP 7 hỗ trợ dấu hai chấm kép lồng nhau (::),

$foo[‘bar’]::$baz;

Lệnh gọi phương thức / hàm lồng nhau

Chúng ta có thể sử dụng các lệnh gọi hàm và phương thức lồng nhau hoặc bất kỳ lệnh nào có thể gọi để nhân đôi các dấu ngoặc đơn.

Ví dụ

foo()(); //return by a function callable
$foo->bar()(); // return by an instance method
Foo::bar()(); // static method
$foo()(); // return by another callable

Tham khảo biểu thức tùy ý

Trong PHP bây giờ, chúng ta có thể bỏ qua bất kỳ biểu thức hợp lệ nào bao gồm cả dấu ngoặc đơn. Ví dụ,

(exp) [‘foo’] ; // It will access an array key
(exp)->foo; // This will access the property
(exp)->foo(); // It will call to a method etc.

Ví dụ

<?php
   function emp() {
      echo "This is emp() \n";
   };
   function dept() {
      echo "This is dept() \n";
      return emp;
   };
   function sub() {
      echo "This is sub()\n";
      return dept;
   };
   sub();
   echo "----------------\n";
   sub()();
   echo "----------------\n";
   sub()()();
?>

Đầu ra

Đầu ra cho chương trình trên sẽ là -

This is sub()
-------------
This is sub()
This is dept()
-------------
This is sub()
This is dept()
This is emp()