Hướng dẫn phpdoc type hint array keys - phím mảng gợi ý kiểu phpdoc
18 Show
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm. Tôi có:
Tôi có thể thực hiện bằng cách nào đó phpstorm để biết chính xác những gì bên trong khóa Thouse không? Bây giờ tôi chỉ thấy gợi ý cho các biến và thuộc tính lớp, nhưng không phải là các khóa mảng. Được hỏi ngày 16 tháng 9 năm 2015 lúc 14:31Sep 16, 2015 at 14:31
1 Câu trả lời muộn, nhưng mọi thứ đã thay đổi. Theo 2021.2 Changelist bây giờ có thể xác định hình dạng của một mảng đơn giản với một nhận xét dòng:
Thật không may, tôi chưa tìm thấy cách xác định cấu trúc của mảng đa chiều và thật tuyệt khi chú thích một danh sách các mảng "hình" như vậy ... Đã trả lời ngày 24 tháng 8 năm 2021 lúc 9:37Aug 24, 2021 at 9:37
SwilkswilkSWilk 3.1317 Huy hiệu vàng29 Huy hiệu bạc51 Huy hiệu Đồng7 gold badges29 silver badges51 bronze badges Bạn có thể xác định các phím mảng trước, sau đó Phpstorm sẽ đề xuất chúng (Ctrl+Space)
Bạn cũng có thể sử dụng PHPDOC (CTRL+Q):
Đã trả lời ngày 1 tháng 10 năm 2016 lúc 14:40Oct 1, 2016 at 14:40
Đối với một mảng tùy ý, phpstorm không biết các khóa được sử dụng trong bất kỳ mảng nào, và do đó không cung cấp gợi ý ở đó. Thậm chí có thể chứng minh rằng không thể thực hiện một tính năng như vậy một cách đáng tin cậy, vì vậy tôi nghĩ rằng bạn đã hết may mắn ở đây. Thu thập từ: Stackoverflow trả lời
Đã trả lời ngày 16 tháng 9 năm 2015 lúc 14:43Sep 16, 2015 at 14:43
Khairul Hồi giáo Hồi giáoKhairul Islam 1.2091 Huy hiệu vàng9 Huy hiệu bạc 20 Huy hiệu đồng1 gold badge9 silver badges20 bronze badges 2
Bây giờ, phpstorm, khi gõ 2 ..... gợi ý x và y
Lỗi 4.4649 Huy hiệu vàng32 Huy hiệu bạc40 Huy hiệu đồng9 gold badges32 silver badges40 bronze badges Đã trả lời ngày 5 tháng 11 năm 2018 lúc 16:33Nov 5, 2018 at 16:33
1 Xuất bản lần đầu tiên tại đây: https://suckup.de/2020/02/modern-phpdoc-annotations/ Chúng tôi sẽ bắt đầu rất đơn giản với Phpstorm và PHPDOC mặc định, sau đó chúng tôi sẽ tăng độ phức tạp từng bước cho đến khi chúng tôi tự động hoàn thành các khóa mảng trực tiếp từ cơ sở dữ liệu với hỗ trợ an toàn, bất biến và loại an toàn. 1.0 Phpstorm & Khối phpdoc tự động tạo
https://www.jetbrains.com/help/phpstorm/phpdoc-comments.html Code: /** * @param array $row * * @return array */ abstract function formatRow(array $row): array; 1.1 Trả lại $ this | tĩnh | tựNó khá khó chịu khi bản thân PHP hiện chỉ có „tự là loại trả lại (https://wiki.php.net/rfc/static_return_type) cho lớp hiện tại. Do „ràng buộc tĩnh trễ, bạn có thể sử dụng„ tĩnh trong mã của mình để chỉ phương thức loại A thực sự được gọi, ngay cả khi phương thức được kế thừa. Nhưng trong PHPDOC, bạn đã có thể sử dụng:
Code: /** * @return static */ abstract function getFoo(): self;https://blog.jetbrains.com/phpstorm/2019/09/phpstorm-2019-2-2-is-released/https://blog.jetbrains.com/phpstorm/2019/09/phpstorm-2019-2-2-is-released/ 1.2 Mới (và không phải là mới) Cú pháp mảngPhpstorm và (Phpstan & Psalm) đang hỗ trợ một số cú pháp mảng mới (và một số không phải mới) cho các loại PHPDOC, nhưng hiện tại PhpStorm sẽ không tự động tạo các loại này. Examples:
Ví dụ (chỉ @Thi thiên-*): Được hỗ trợ bởi Phpstan & Thi thiên
Live-Examples: - Thi thiên: https://psalm.dev/r/922D4BA5B1Psalm: https://psalm.dev/r/922d4ba5b1 -PHPStan: https://phpstan.org/r/ce657ef4-9f18-46a1-b21a-e51e3a0e6d2d Code: /** * @param array $row * * @return array */ abstract function formatRow(array $row): array; Hỗ trợ PHPSTOR? Ví dụ, Phpstorm sẽ chấp nhận „mảng „@Param đặt hàng [] $ đặt hàng và„@psalm-param mảng $ đặt hàng. Sadly PhpStorm did not have good support for these types, so that you often have to add „@psalm-*“ PHPDoc comments. For example PhpStorm will accept „array“ but PhpStorm will not understand the PHPDoc, so that you need to add e.g. „@param Order[] $order“ and „@psalm-param array $order“. 1.3 tự động hoàn thành động & nbsp; (+ dữ liệu từ cơ sở dữ liệu của bạn) thông qua sự hoàn thành sâu thẳmNếu bạn có một phương thức, ví dụ: Formatrow ($ Row) Bạn có thể sử dụng „getFieldArray () [0] (Dữ liệu từ cơ sở dữ liệu - bạn phải kết nối IDE với cơ sở dữ liệu của bạn và các truy vấn của bạn cần phải phân tích bằng PhpStorm (hãy xem ảnh chụp màn hình tiếp theo ) và kết hợp dữ liệu tĩnh từ „getheaderfieldArray (), để bạn có tự động hoàn thành từ các nguồn khác nhau. Code: /** * @param array $row = $this->getFieldArray()[0] + $this->getHeaderFieldArray() * * @return array */ abstract function formatRow(array $row): array; Thêm thông tin + Ví dụ: https://github.com/klesun/deep-assoc-completion 1.4 Kiểm tra tính bất biến thông qua các phân tích mã tĩnh (thông qua Thi thiên)Và thậm chí còn có nhiều hơn. :) Bạn có thể thêm chú thích PHPDOC sẽ kiểm tra xem bạn có thực sự sử dụng các lớp bất biến hoặc ít nhất là các phương pháp. Vui lòng đọc thêm tại đây: https://psalm.dev/articles/immutability-and-beyond Code: /** * @param array $row = $this->getFieldArray()[0] + $this->getHeaderFieldArray() * * @return array * * @psalm-mutation-free */ abstract function formatRow(array $row): array; Live-Example: - Thi thiên: https://psalm.dev/r/5bac0a9a07 1.5 Generics trong PHP thông qua các phân tích mã tĩnhChúng tôi cũng có thể sử dụng thuốc generic thông qua các chú thích mã. Cả Phpstan & Psalm đều hỗ trợ nó, nhưng hỗ trợ của Thi-thiên có tính năng hoàn chỉnh hơn và cả hai công cụ đều có thể sử dụng „@psalm-Hồi-cú pháp. Đây là một số ví dụ đơn giản. Array_last: sẽ trả về phần tử mảng cuối cùng từ mảng $ (loại: tlast) hoặc $ fallback (loại: tlastfallback). Chúng tôi nói với chức năng rằng các loại xuất phát từ các tham số đầu vào và đầu vào là một mảng của tlast hoặc tlastfallback từ dự phòng.: Will return the last array element from the $array (type: TLast) or the $fallback (type: TLastFallback). We tell the function that the types comes from the input parameters and that the input is an array of TLast or TLastFallback from the fallback. 0Array_First: sẽ trả về phần tử mảng đầu tiên từ mảng $ (loại: tfirst) hoặc $ fallback (loại: tfirstfallback). Chúng tôi nói với chức năng rằng các loại xuất phát từ các thông số đầu vào và đầu vào là một mảng của tfirst hoặc tfirstfallback từ dự phòng.: Will return the first array element from the $array (type: TFirst) or the $fallback (type: TFirstFallback). We tell the function that the types comes from the input params and that the input is an array of TFirst or TFirstFallback from the fallback. 1Vì vậy, chúng tôi có thể xác định „Mẫu và các đối số đầu vào bản đồ trên các loại đó, điều này còn phức tạp hơn nếu bạn sử dụng nó trong bối cảnh lớp và bạn ánh xạ các mẫu trên các thuộc tính của lớp. Nhưng logic sẽ giống nhau. Dưới đây là một ví dụ phức tạp hơn: https://github.com/voku/arrayy/blob/master/src/collection/collectioninterface.php Hỗ trợ phpstorm ?: Noop, thật đáng buồn là chúng ta cần hack cái này qua „phpstorm_meta, vì vậy đây là một ví dụ:: Noop, sadly we need to hack this via „PHPSTORM_META“, so here is an example:
Đọc thêm tại đây:
2.0 Sơ yếu lý lịchNó không hoàn hảo, và kiểm tra loại và tự động hoàn thành chỉ với PHPDOC không thực sự là những gì tôi mong đợi cho năm 2020. Nhưng nó hoạt động và tôi hy vọng PHPSTORM sẽ mang lại nhiều hỗ trợ hơn cho các loại chú thích mới trong tương lai. Nhiều liên kết khác:
Làm thế nào để bạn tìm thấy các phím mảng?Hàm Array_Keys () được sử dụng để lấy tất cả các phím hoặc một tập hợp con của các khóa của một mảng.Lưu ý: Nếu tìm kiếm tùy chọn_key_value được chỉ định, thì chỉ có các khóa cho giá trị đó được trả về.Nếu không, tất cả các phím từ mảng được trả về.array_keys() function is used to get all the keys or a subset of the keys of an array. Note: If the optional search_key_value is specified, then only the keys for that value are returned. Otherwise, all the keys from the array are returned.
Mảng nào đã đặt tên là Keys?Các mảng liên kết là các mảng sử dụng các khóa có tên mà bạn gán cho chúng. are arrays that use named keys that you assign to them.
Các loại mảng khác nhau có sẵn trong PHP là gì?Trong PHP, có ba loại mảng: mảng được lập chỉ mục - mảng có chỉ mục số.Mảng liên kết - Mảng với các khóa có tên.Mảng đa chiều - Mảng chứa một hoặc nhiều mảng.Indexed arrays - Arrays with a numeric index. Associative arrays - Arrays with named keys. Multidimensional arrays - Arrays containing one or more arrays. |