NoDiscard
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
NoDiscard
Референца за `class.nodiscard.php` со подобрена типографија и навигација.
Атрибутот NoDiscard
(PHP 8 >= 8.5.0)
Вовед
Овој атрибут може да се користи за да се укаже дека вратената вредност од функција или метод не треба да се отфрли. Ако вратената вредност не се користи на кој било начин, ќе се емитува предупредување.
Ова е корисно за функции каде што непроверувањето на вратената вредност веројатно е грешка.
За намерно отфрлање на вратената вредност од таква функција, користете (void) каст за да го потиснете предупредувањето.
Забелешка: Бидејќи атрибутите се дизајнирани да бидат компатибилни наназад,
#[\NoDiscard]може да се додаде на функции и методи дури и кога се поддржани PHP 8.4 или пониско, само што нема да прави ништо. На PHP 8.5 и погоре ќе се емитува предупредување ако резултатот не се користи. За да го потиснете предупредувањето без да користите(void), што не е поддржано пред PHP 8.5, разгледајте користење променлива како$_.
Синопсис на класата
Својства
- message
- Изборна порака што објаснува зошто вратената вредност не треба да се отфрли.
Примери
Пример #1 Основна употреба
<?php
/**
* Processes all the given items and returns an array with the results of the
* operation for each item. `null` indicates success and an Exception indicates
* an error. The keys of the result array match the keys of the $items array.
*
* @param array<string> $items
* @return array<null|Exception>
*/
#[\NoDiscard("as processing might fail for individual items")]
function bulk_process(array $items): array {
$results = [];
foreach ($items as $key => $item) {
if (\random_int(0, 9999) < 9999) {
// Pretend to do something useful with $item,
// which will succeed in 99.99% of cases.
echo "Processing {$item}", PHP_EOL;
$error = null;
} else {
$error = new \Exception("Failed to process {$item}.");
}
$results[$key] = $error;
}
return $results;
}
bulk_process($items);
?>Излезот од горниот пример во PHP 8.5 е сличен на:
Warning: The return value of function bulk_process() should either be used or intentionally ignored by casting it as (void), as processing might fail for individual items
Пример #2 Намерно отфрлање на вратената вредност
<?php
#[\NoDiscard]
function some_command(): int {
return 1;
}
// Suppress the warning using (void) - PHP 8.5+
(void) some_command();
// For compatibility with PHP versions before 8.5, use a temporary variable
$_ = some_command();
?>Види Исто така
Содржина
- NoDiscard::__construct — Конструирај нова инстанца на атрибутот NoDiscard