From f7f2d3fb56fc5fd7ee4b86d3efab9e0f3725bd05 Mon Sep 17 00:00:00 2001 From: Maciej Sobaczewski Date: Sat, 31 Aug 2024 07:37:22 +0200 Subject: [PATCH] Sync with EN --- language/predefined/errorexception.xml | 27 +++--- language/predefined/stringable.xml | 22 ++--- reference/classobj/examples.xml | 126 ++++++++++++++----------- 3 files changed, 92 insertions(+), 83 deletions(-) diff --git a/language/predefined/errorexception.xml b/language/predefined/errorexception.xml index 85cd11e8..e3c22661 100644 --- a/language/predefined/errorexception.xml +++ b/language/predefined/errorexception.xml @@ -1,5 +1,5 @@ - + ErrorException @@ -82,31 +82,34 @@ ]]> &example.outputs.similar; diff --git a/language/predefined/stringable.xml b/language/predefined/stringable.xml index 67436a0c..393a4655 100644 --- a/language/predefined/stringable.xml +++ b/language/predefined/stringable.xml @@ -1,5 +1,5 @@ - + @@ -53,17 +53,12 @@ oct1 = $oct1; - $this->oct2 = $oct2; - $this->oct3 = $oct3; - $this->oct4 = $oct4; - } + public function __construct( + private string $oct1, + private string $oct2, + private string $oct3, + private string $oct4, + ) {} public function __toString(): string { return "$this->oct1.$this->oct2.$this->oct3.$this->oct4"; @@ -71,8 +66,7 @@ class IPv4Address implements Stringable { } function showStuff(string|Stringable $value) { - // Stringable zostanie tutaj skonwertowane do ciągu znaków - // poprzez wywołanie __toString. + // Dla obiektów implementujących Stringable zostaje niejawnie wywołana metoda __toString(). print $value; } diff --git a/reference/classobj/examples.xml b/reference/classobj/examples.xml index ddbea2e5..baae5b18 100644 --- a/reference/classobj/examples.xml +++ b/reference/classobj/examples.xml @@ -1,70 +1,73 @@ - + - &reftitle.examples; W tym przykładzie najpierw zdefiniujemy bazową klasę i jej - rozszerzenie. Klasa bazowa opisuje normalne warzywo, czy jest - jadalne czy nie oraz jego kolor. Podklasa Szpinak + rozszerzenie. Klasa bazowa opisuje ogólne warzywo, + czy jest jadalne oraz jego kolor. Podklasa Szpinak dodaje metodę pozwalającą go ugotować, i drugą, która pozwala dowiedzieć się, czy jest ugotowany. - classes.inc + Definicje klasy + Warzywo jadalne = $jadalne; $this->kolor = $kolor; } - function czy_jadalne() - { + public function czyJadalne() + { return $this->jadalne; } - function jaki_kolor() - { + public function pobierzKolor() + { return $this->kolor; } +} -} // koniec klasy Warzywo +?> +]]> + + Szpinak + +Warzywo(true, "zielone"); } - function ugotuj() - { + public function ugotuj() + { $this->ugotowane = true; } - function czy_ugotowane() - { + function czyUgotowane() + { return $this->ugotowane; } - -} // koniec klasy Szpinak +} ?> ]]> @@ -82,21 +85,19 @@ class Szpinak extends Warzywo { test_script.php $wart) { echo "\t$wlasc = $wart\n"; } } -function drukuj_metody($obj) +function drukujMetody($obj) { $tab = get_class_methods(get_class($obj)); foreach ($tab as $metoda) { @@ -104,42 +105,62 @@ function drukuj_metody($obj) } } -function przodkowie_klasy($obj, $klasa) +function przodkowieKlasy($obj, $klasa) { - global $$obj; - if (is_subclass_of($GLOBALS[$obj], $klasa)) { - echo "Obiekt $obj należy do klasy ".get_class($GLOBALS[$obj]); - echo ", podklasy $klasa\n"; + if (is_subclass_of($obj, $klasa)) { + echo "Obiekt należy do klasy " . get_class($obj); + echo ", a subclass of $klasa\n"; } else { - echo "Obiekt $obj nie należy do podklasy $klass\n"; + echo "Obiekt nie należy do podklasy $klasa\n"; } } // tworzymy 2 egzemplarze obiektów - $warzywko = new Warzywo(true, "niebieski"); $lisciaste = new Szpinak(); // wydrukujemy informację o obiektach -echo "warzywko: KLASA ".get_class($warzywko)."\n"; -echo "lisciaste: KLASA ".get_class($lisciaste); -echo ", PRZODEK ".get_parent_class($lisciaste)."\n"; +echo "warzywko: KLASA " . get_class($warzywko) . "\n"; +echo "lisciaste: KLASA " . get_class($lisciaste); +echo ", PRZODEK " . get_parent_class($lisciaste) . "\n"; // pokażmy właściwości warzywka echo "\nwarzywko: Właściwości\n"; -drukuj_wlasciwosci($warzywko); +drukujWlasciwosci($warzywko); // i metody liściastego -echo "\nlisciaste: Metody\n"; -drukuj_metody($lisciaste); +echo "\nliściaste: Metody\n"; +drukujMetody($lisciaste); echo "\nPrzodkowie:\n"; -przodkowie_klasy("lisciaste", "Szpinak"); -przodkowie_klasy("lisciaste", "Warzywo"); +przodkowieKlasy($lisciaste, Szpinak::class); +przodkowieKlasy($lisciaste, Warzywo::class); + ?> - ]]> + &examples.outputs; + + + Wartą odnotowania rzeczą w powyższym przykładzie jest to, że obiekt $lisciaste jest egzemplarzem klasy @@ -147,14 +168,6 @@ przodkowie_klasy("lisciaste", "Warzywo"); Warzywo, i tak ostatnia część powyższego skryptu pokaże na wyjściu: - - - @@ -179,4 +192,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> -