Creation of dynamic property is deprecated !
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- C
- Star
- 40.4k
- Fork
- 8.1k
- Merge trung bình
- 2 ngày 13 giờ
- Pull request đã merge (30 ngày)
- 96
Mô tả
Description
The following code ( This should never happen when I'm using magic methods, but unfortunately it does happen sometimes ):
<?php
final class Content {
protected array $data = array('sequence'=>1);
public function &__get(string $property) : mixed {
if(isset($this->data[$property]) === false):
$this->data[$property] = null;
endif;
return $this->data[$property];
}
public function __set(string $name,mixed $value) : void {
$this->data[$name] = $value;
}
}
$content = new Content();
$result = $content->sequence * 2 + 1;
$content->sequence += 1;
print $result;
Result:
3
But sometimes when the number of such requests increases, I receive the following warning :
Creation of dynamic property Content::$sequence is deprecated 18
PHP Version
PHP 8.2.11
Operating System
Linux
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 bằng cách chạy bản tái hiện với PHP 8.2.11 từ issue trên Linux và so sánh các lần truy cập phương thức ma thuật với cảnh báo về thuộc tính động đã được báo cáo. Theo dõi cách runtime xử lý __get, __set và phép gán kết hợp để xác định cảnh báo bắt nguồn từ đâu. Công việc hoàn thành phải bao gồm một giải thích đã được xác nhận và một bài kiểm thử hồi quy hoặc một thay đổi hành vi được định nghĩa rõ ràng.
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
- backend
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 25/100