Introduce `ReflectionProperty::isUnset()`
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 15 giờ
- Pull request đã merge (30 ngày)
- 103
Mô tả
Description
There is a difference between uninitialized and unset property when magic method like __get() is defined. The need of these two states was discussed in #9389.
Currently there is no way to detect if property is just uninitialized or also unset, so from the observable state, it is impossible to tell the property behaviour of a given object.
repro: https://3v4l.org/lDeXi
This is a feature request to add ReflectionProperty::isUnset() method.
An alternative would be to update property_exists() function behaviour - https://www.php.net/manual/en/function.property-exists.php#116824 - which does not account for unset property since it was introduced.
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
Bắt đầu với bản tái hiện được liên kết trên 3v4l.org và điểm vào API ReflectionProperty hiện có trong php-src. Xác định sự khác biệt về hành vi giữa một thuộc tính chưa được khởi tạo và một thuộc tính đã bị bỏ thiết lập, sau đó xác nhận rằng ReflectionProperty::isUnset() có thể biểu lộ sự khác biệt này mà không thay đổi hành vi thay thế của property_exists().
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- c, php
- Lĩnh vực
- backend
- 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
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100