Support for nullsafe function call syntax
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- C
- Star
- 40.4k
- Fork
- 8.2k
- Merge trung bình
- 2 ngày 13 giờ
- Pull request đã merge (30 ngày)
- 96
Mô tả
Description
The following code:
<?php
class Foo {
public function __invoke(): string {
return 'foo invoked';
}
}
$f = new Foo();
var_Dump($f());
results in this expected output:
string(11) "foo invoked"
$g = null;
$g();
results in this expected output
Fatal error: Uncaught Error: Value of type null is not callable
$g = null;
$g?->__invoke();
results in this expected output:
string(11) "foo invoked"
As the call to ->__invoke() can be shortened to () I would have expected to be able to use the nullsafe operator here as well and write
$g = null;
$g?();
But this results in in this output:
Parse error: syntax error, unexpected token ")"
I would have expected
string(11) "foo invoked"
Is this on purpose? I could not find any mention of invoke in the RFC. So was this overseen?
See also https://3v4l.org/n09i2
PHP Version
All currently supported PHP-Versions
Operating System
No response
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Tái hiện hành vi được báo cáo bằng các đoạn mã PHP trong issue, sau đó đọc RFC được liên kết về toán tử nullsafe cùng với phần triển khai và các bài kiểm thử hiện có cho các lệnh gọi nullsafe. Hoàn thành có nghĩa là xác định và triển khai cách xử lý dự kiến của $g?(), đồng thời giữ nguyên các lỗi đã được ghi lại đối với các lệnh gọi thông thường và khớp với hành vi mong đợi.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- php
- Lĩnh vực
- compilers
- Loại issue
- Tính năng
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức phù hợp với người mới
- 35/100