Php dấu hỏi kép so với dấu chấm hỏi dấu hai chấm

Toán tử phân giải phạm vi (còn được gọi là Paamayim Nekudotayim) hay nói một cách đơn giản hơn, dấu hai chấm, là một mã thông báo cho phép truy cập vào các thuộc tính hoặc phương thức tĩnh, hằng số và bị ghi đè của một lớp

Khi tham chiếu các mục này từ bên ngoài định nghĩa lớp, hãy sử dụng tên của lớp

Có thể tham chiếu lớp bằng một biến. Giá trị của biến không thể là một từ khóa (e. g. self, parentstatic)

Ban đầu, Paamayim Nekudotayim có vẻ như là một lựa chọn kỳ lạ để đặt tên cho dấu hai chấm. Tuy nhiên, trong khi viết Zend Engine 0. 5 (hỗ trợ PHP 3), đó là tên mà nhóm Zend đã quyết định gọi nó. Nó thực sự có nghĩa là dấu hai chấm - trong tiếng Do Thái

Ví dụ 1. từ bên ngoài định nghĩa lớp

class MyClass {
const CONST_VALUE = 'A constant value';
}

$classname = 'MyClass';
echo $classname::CONST_VALUE;

echo MyClass::CONST_VALUE;
?>

Ba từ khóa đặc biệt self, parent và static được sử dụng để truy cập các thuộc tính hoặc phương thức từ bên trong định nghĩa lớp

Ví dụ #2. từ bên trong định nghĩa lớp

class OtherClass extends MyClass
{
public static $my_static = 'static var';

public static function doubleColon() {
echo parent::CONST_VALUE . "\n";
echo self::$my_static . "\n";
}
}

$classname = 'OtherClass';
$classname::doubleColon();

self0

Khi một lớp mở rộng ghi đè lên định nghĩa của phương thức cha, PHP sẽ không gọi phương thức của cha. Việc phương thức của cha có được gọi hay không là tùy thuộc vào lớp mở rộng. Điều này cũng áp dụng cho các định nghĩa phương thức Trình xây dựng và Trình hủy, Quá tải và Phép thuật

Trong PHP, Toán tử dấu chấm hỏi ? được gọi là toán tử bậc ba hoặc toán tử bậc ba có điều kiện. Bài viết này sẽ đi sâu về toán tử bậc ba trong PHP

Giới thiệu về Toán tử ternary trong PHP

Toán tử bậc ba là một trong số đó, vì nó chỉ cần ba toán hạng

  1. Toán hạng đầu tiên là biểu thức được đánh giá. Thông thường, lập luận so sánh. Nó trả về một giá trị Boolean
  2. Toán hạng thứ hai là biểu thức sẽ được thực thi nếu biểu thức đầu tiên trả về giá trị thực
  3. Biểu thức thứ ba sẽ được đánh giá nếu biểu thức đầu tiên trả về giá trị sai

Biểu tượng dấu chấm hỏi ? phân tách biểu thức cần đánh giá với các biểu thức còn lại. Ngoài ra, dấu hai chấm, _______ 49 _______, được sử dụng để phân tách toán hạng thứ hai và thứ ba

cú pháp

expression1?expression2:expression3

Tham khảo ví dụ cú pháp ở trên,

5;
echo $ran_num ?"heads":"tails";
?>
0 sẽ thực thi nếu
5;
echo $ran_num ?"heads":"tails";
?>
1 sẽ trả về
5;
echo $ran_num ?"heads":"tails";
?>
2. Nếu
5;
echo $ran_num ?"heads":"tails";
?>
1 đánh giá
5;
echo $ran_num ?"heads":"tails";
?>
4, thì
5;
echo $ran_num ?"heads":"tails";
?>
5 sẽ thực thi

Ví dụ, tạo một biến

5;
echo $ran_num ?"heads":"tails";
?>
6 và gán nó cho một biểu thức. Biểu thức sử dụng hàm
5;
echo $ran_num ?"heads":"tails";
?>
7 và so sánh nếu nó lớn hơn
5;
echo $ran_num ?"heads":"tails";
?>
8

Tiếp theo, sử dụng toán tử bậc ba trong đó biến

5;
echo $ran_num ?"heads":"tails";
?>
6 là biểu thức cần ước tính. Sau đó, viết

0 cho biểu thức thứ hai và

1 cho biểu thức thứ ba

Do đó, đoạn mã được hiển thị trong ví dụ bên dưới sẽ in ra hoặc là


0 hoặc là

1

Mã ví dụ

5;
echo $ran_num ?"heads":"tails";
?>

đầu ra

Chúng ta có thể sử dụng toán tử bậc ba để thay thế cho cấu trúc


4 để rút ngắn độ dài của mã và cải thiện khả năng đọc. Chúng ta có thể sử dụng nó để viết các biểu thức điều kiện đơn giản hơn

Mã ví dụ


đầu ra

Tuy nhiên, có thể không dễ đọc mã khi chúng ta xâu chuỗi hoặc lồng toán tử bậc ba. Một nhược điểm khác của toán tử bậc ba là khó gỡ lỗi mã vì chúng ta không thể đặt điểm ngắt trong biểu thức con

Đánh giá biểu thức 5 và 6 bằng cách sử dụng toán tử ternary trong PHP

Chúng ta sẽ xem xét cách sử dụng của toán tử bậc ba. Ví dụ dưới đây sẽ đánh giá biểu thức

5;
echo $ran_num ?"heads":"tails";
?>
2 và thực thi khối mã tương ứng

Hàm


8 sẽ xác định xem một người có thể bỏ phiếu hay không. Đầu tiên, biến

9 được đánh giá nếu lớn hơn hoặc bằng
=18 ?"you can vote": "you cannot vote";
}
canVote(21);
?>
0

Tiếp theo, chúng tôi đã gọi hàm


8 với giá trị là
=18 ?"you can vote": "you cannot vote";
}
canVote(21);
?>
2 làm tham số, đây là độ tuổi bỏ phiếu hợp pháp. Ở đây, biểu thức được đánh giá là
5;
echo $ran_num ?"heads":"tails";
?>
2 và biểu thức thứ hai được thực thi

Mã ví dụ

=18 ?"you can vote": "you cannot vote";
}
canVote(21);
?>

đầu ra

Trong ví dụ tiếp theo, nếu chúng ta cung cấp một giá trị nhỏ hơn 18, thì biểu thức so sánh sẽ được đánh giá là

5;
echo $ran_num ?"heads":"tails";
?>
4. Do đó, biểu thức thứ ba,
=18 ?"you can vote": "you cannot vote";
}
canVote(21);
?>
5, sẽ được hiển thị

Mã ví dụ

=18 ?"you can vote": "you cannot vote";
}
canVote(17);
?>

đầu ra

Có những trường hợp khác khi đánh giá được thể hiện sẽ trả về giá trị

5;
echo $ran_num ?"heads":"tails";
?>
4. Chẳng hạn, nếu biểu thức trả về giá trị
=18 ?"you can vote": "you cannot vote";
}
canVote(21);
?>
7,
=18 ?"you can vote": "you cannot vote";
}
canVote(21);
?>
8,
=18 ?"you can vote": "you cannot vote";
}
canVote(21);
?>
9 hoặc giá trị trống, thì biểu thức sẽ trả về giá trị
5;
echo $ran_num ?"heads":"tails";
?>
4

Ví dụ sau đây cho thấy các điều kiện của giá trị

=18 ?"you can vote": "you cannot vote";
}
canVote(17);
?>
1. Toán tử bậc ba sẽ thực thi biểu thức thứ ba khi các giá trị này được ước tính

Làm cách nào để sử dụng dấu chấm hỏi trong PHP?

Khai báo loại cho các tham số và giá trị trả về giờ đây có thể được đánh dấu là không có giá trị bằng cách đặt trước tên loại một dấu chấm hỏi . Điều này có nghĩa là cũng như loại được chỉ định, null có thể được truyền dưới dạng đối số hoặc được trả về dưới dạng giá trị tương ứng.

Dấu chấm hỏi kép là gì?

Dấu hỏi kép Javascript là toán tử logic nhận hai giá trị và trả về giá trị bên phải nếu giá trị bên trái không xác định hoặc null, nếu không thì trả về bên trái . Mức độ ưu tiên của toán tử đối với toán tử hợp nhất nullish là mức thấp thứ năm. . Operator precedence for the nullish coalescing operator is the fifth-lowest.

Dấu chấm hỏi kép trong toán tử ternary là gì?

Dấu chấm hỏi kép (??) Nó được dùng để cung cấp giá trị mặc định . Nó còn được gọi là toán tử kết hợp nil. Toán tử này được gọi là toán tử bậc ba.

Dấu hỏi kép trong laravel là gì?

Dấu hỏi kép PHP được gọi là toán tử hợp nhất null kiểm tra xem giá trị của các biến có được đặt hoặc một điều kiện cụ thể nào đó có đúng không. It keeps the expression to be checked on the right side and the remaining part on the left side.