PHP.mk документација

NoDiscard

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

class.nodiscard.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека class.nodiscard.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
NoDiscard

Референца за `class.nodiscard.php` со подобрена типографија и навигација.

class.nodiscard.php

Атрибутот NoDiscard

(PHP 8 >= 8.5.0)

Вовед

Овој атрибут може да се користи за да се укаже дека вратената вредност од функција или метод не треба да се отфрли. Ако вратената вредност не се користи на кој било начин, ќе се емитува предупредување.

Ова е корисно за функции каде што непроверувањето на вратената вредност веројатно е грешка.

За намерно отфрлање на вратената вредност од таква функција, користете (void) каст за да го потиснете предупредувањето.

Забелешка: Бидејќи атрибутите се дизајнирани да бидат компатибилни наназад, #[\NoDiscard] може да се додаде на функции и методи дури и кога се поддржани PHP 8.4 или пониско, само што нема да прави ништо. На PHP 8.5 и погоре ќе се емитува предупредување ако резултатот не се користи. За да го потиснете предупредувањето без да користите (void), што не е поддржано пред PHP 8.5, разгледајте користење променлива како $_.

Синопсис на класата

#[\Attribute]
final class NoDiscard {
/* Својства */
public readonly ?string $message;
/* Методи */
public __construct(?string $message = null)
}

Својства

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();

?>

Види Исто така

Содржина

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.