diff --git a/language/predefined/attributes/nodiscard.xml b/language/predefined/attributes/nodiscard.xml new file mode 100644 index 00000000..0d6d0cf1 --- /dev/null +++ b/language/predefined/attributes/nodiscard.xml @@ -0,0 +1,179 @@ + + + + Atrybut NoDiscard + NoDiscard + + + +
+ &reftitle.intro; + + Ten atrybut może być użyty do wskazania, że wartość zwracana przez funkcję + lub metodę nie powinna być odrzucana. Jeśli wartość zwracana nie zostanie + w żaden sposób wykorzystana, zostanie wyemitowane ostrzeżenie. + + + Jest to przydatne w przypadku funkcji, w których niesprawdzenie wartości + zwracanej prawdopodobnie jest błędem. + + + Aby celowo odrzucić wartość zwracaną takiej funkcji, należy użyć rzutowania + (void) w celu wyciszenia ostrzeżenia. + + + + Ponieważ atrybuty są zaprojektowane tak, aby były wstecznie kompatybilne, + #[\NoDiscard] może być dodany do funkcji i metod nawet gdy + obsługiwane jest PHP 8.4 lub niższe — po prostu nic nie zrobi. + W PHP 8.5 i nowszych zostanie wyemitowane ostrzeżenie, jeśli wynik nie + zostanie wykorzystany. Aby wyciszyć ostrzeżenie bez użycia + (void), które nie jest obsługiwane przed PHP 8.5, + rozważ użycie zmiennej takiej jak $_. + + +
+ +
+ &reftitle.classsynopsis; + + + + final + NoDiscard + + + &Properties; + + public + readonly + stringnull + message + + + &Methods; + + + + + +
+ +
+ &reftitle.properties; + + + message + + + Opcjonalna wiadomość wyjaśniająca, dlaczego wartość zwracana nie powinna + być odrzucana. + + + + +
+ +
+ &reftitle.examples; + + Podstawowe użycie + + $items + * @return array + */ +#[\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); + +?> +]]> + + &example.outputs.85.similar; + + + + + + Celowe odrzucenie wartości zwracanej + + +]]> + + +
+ +
+ &reftitle.seealso; + + Przegląd atrybutów + +
+ +
+ + &language.predefined.attributes.nodiscard.construct; + +
+ diff --git a/language/predefined/attributes/nodiscard/construct.xml b/language/predefined/attributes/nodiscard/construct.xml new file mode 100644 index 00000000..d32efbec --- /dev/null +++ b/language/predefined/attributes/nodiscard/construct.xml @@ -0,0 +1,54 @@ + + + + + + NoDiscard::__construct + Tworzy nową instancję atrybutu NoDiscard + + + + &reftitle.description; + + public NoDiscard::__construct + stringnullmessage&null; + + + Tworzy nową instancję NoDiscard. + + + + + &reftitle.parameters; + + + message + + + Wartość właściwości message. + + + + + + + diff --git a/language/predefined/closure/getcurrent.xml b/language/predefined/closure/getcurrent.xml new file mode 100644 index 00000000..bf9db604 --- /dev/null +++ b/language/predefined/closure/getcurrent.xml @@ -0,0 +1,124 @@ + + + + + + Closure::getCurrent + Zwraca aktualnie wykonywaną domknięcie + + + + &reftitle.description; + + public static ClosureClosure::getCurrent + + + + Zwraca aktualnie wykonywaną domknięcie. Ta metoda jest przydatna głównie + do implementacji rekurencyjnych domknięć bez konieczności przechwytywania + referencji do zmiennej domknięcia za pomocą słowa kluczowego + use. + + + Ta metoda musi być wywołana z wnętrza domknięcia; wywołanie jej poza + kontekstem domknięcia spowoduje błąd + Error: Current function is not a closure. + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + Zwraca aktualnie wykonywaną instancję Closure. + + + + + &reftitle.errors; + + Rzuca Error jeśli zostanie wywołana poza kontekstem + domknięcia. + + + + + &reftitle.examples; + + Przykład użycia <methodname>Closure::getCurrent</methodname> + + Użycie Closure::getCurrent do implementacji + rekurencyjnej funkcji Fibonacci: + + + +]]> + + + + Porównanie z tradycyjnym podejściem + + Przed PHP 8.5 implementacja rekurencyjnych domknięć wymagała przechwycenia + referencji do zmiennej domknięcia za pomocą słowa kluczowego + use: + + + +]]> + + + Podejście z Closure::getCurrent eliminuje + konieczność deklarowania zmiennej z referencją w klauzuli + use, co sprawia, że kod jest czystszy i mniej + podatny na błędy. + + + + + + diff --git a/language/predefined/weakreference/construct.xml b/language/predefined/weakreference/construct.xml new file mode 100644 index 00000000..b4ecd0ff --- /dev/null +++ b/language/predefined/weakreference/construct.xml @@ -0,0 +1,66 @@ + + + + + + WeakReference::__construct + Konstruktor uniemożliwiający tworzenie instancji + + + + &reftitle.description; + + public WeakReference::__construct + + + + Ta metoda istnieje wyłącznie w celu uniemożliwienia tworzenia instancji klasy + WeakReference. Słabe referencje należy tworzyć za pomocą + metody fabrykującej WeakReference::create. + + + + + &reftitle.parameters; + &no.function.parameters; + + + + + + &reftitle.seealso; + + WeakReference::create + + + + + diff --git a/language/predefined/weakreference/create.xml b/language/predefined/weakreference/create.xml new file mode 100644 index 00000000..2f785bfa --- /dev/null +++ b/language/predefined/weakreference/create.xml @@ -0,0 +1,63 @@ + + + + + + WeakReference::create + Tworzy nową słabą referencję + + + + &reftitle.description; + + public static WeakReferenceWeakReference::create + objectobject + + + Tworzy nową instancję WeakReference. + + + + + &reftitle.parameters; + + + object + + + Obiekt, do którego ma być utworzona słaba referencja. + + + + + + + + &reftitle.returnvalues; + + Zwraca nową instancję WeakReference lub istniejącą + instancję, jeśli słaba referencja do tego samego obiektu już istnieje. + + + + + diff --git a/language/predefined/weakreference/get.xml b/language/predefined/weakreference/get.xml new file mode 100644 index 00000000..c651d46a --- /dev/null +++ b/language/predefined/weakreference/get.xml @@ -0,0 +1,55 @@ + + + + + + WeakReference::get + Pobiera obiekt ze słabą referencją + + + + &reftitle.description; + + public objectnullWeakReference::get + + + + Pobiera obiekt ze słabą referencją. + Jeśli obiekt został już zniszczony, zwracane jest &null;. + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + Zwraca obiekt wskazywany przez referencję (&object;) lub &null;, jeśli + obiekt został zniszczony. + + + + +