From bb2f80570824226adf78898cd6b600116d271e64 Mon Sep 17 00:00:00 2001 From: Aleksandr Shelkovin Date: Thu, 9 Jan 2025 20:23:47 +0300 Subject: [PATCH] some exercises and christmass mystery --- .../DateTime/index.php | 0 .../PointClass/index.php | 0 .../PointClass/my_static.php | 0 .../PointClass/point.php | 0 .../PointClass/private_point.php | 0 .../PointClass/readonly.php | 0 .../PointClass/readonly_construct.php | 0 .../methods_of_classes/greeting.php | 8 +++ .../methods_of_classes/index.php | 56 +++++++++++++++++++ .../methods_of_classes/point.php | 46 +++++++++++++++ cristmass-tree/index.php | 6 ++ cristmass-tree/tree.php | 25 +++++++++ 12 files changed, 141 insertions(+) rename Koterov-php-training/{classes_and_metods => classes_and_objects}/DateTime/index.php (100%) rename Koterov-php-training/{classes_and_metods => classes_and_objects}/PointClass/index.php (100%) rename Koterov-php-training/{classes_and_metods => classes_and_objects}/PointClass/my_static.php (100%) rename Koterov-php-training/{classes_and_metods => classes_and_objects}/PointClass/point.php (100%) rename Koterov-php-training/{classes_and_metods => classes_and_objects}/PointClass/private_point.php (100%) rename Koterov-php-training/{classes_and_metods => classes_and_objects}/PointClass/readonly.php (100%) rename Koterov-php-training/{classes_and_metods => classes_and_objects}/PointClass/readonly_construct.php (100%) create mode 100644 Koterov-php-training/methods_of_classes/greeting.php create mode 100644 Koterov-php-training/methods_of_classes/index.php create mode 100644 Koterov-php-training/methods_of_classes/point.php create mode 100644 cristmass-tree/index.php create mode 100644 cristmass-tree/tree.php diff --git a/Koterov-php-training/classes_and_metods/DateTime/index.php b/Koterov-php-training/classes_and_objects/DateTime/index.php similarity index 100% rename from Koterov-php-training/classes_and_metods/DateTime/index.php rename to Koterov-php-training/classes_and_objects/DateTime/index.php diff --git a/Koterov-php-training/classes_and_metods/PointClass/index.php b/Koterov-php-training/classes_and_objects/PointClass/index.php similarity index 100% rename from Koterov-php-training/classes_and_metods/PointClass/index.php rename to Koterov-php-training/classes_and_objects/PointClass/index.php diff --git a/Koterov-php-training/classes_and_metods/PointClass/my_static.php b/Koterov-php-training/classes_and_objects/PointClass/my_static.php similarity index 100% rename from Koterov-php-training/classes_and_metods/PointClass/my_static.php rename to Koterov-php-training/classes_and_objects/PointClass/my_static.php diff --git a/Koterov-php-training/classes_and_metods/PointClass/point.php b/Koterov-php-training/classes_and_objects/PointClass/point.php similarity index 100% rename from Koterov-php-training/classes_and_metods/PointClass/point.php rename to Koterov-php-training/classes_and_objects/PointClass/point.php diff --git a/Koterov-php-training/classes_and_metods/PointClass/private_point.php b/Koterov-php-training/classes_and_objects/PointClass/private_point.php similarity index 100% rename from Koterov-php-training/classes_and_metods/PointClass/private_point.php rename to Koterov-php-training/classes_and_objects/PointClass/private_point.php diff --git a/Koterov-php-training/classes_and_metods/PointClass/readonly.php b/Koterov-php-training/classes_and_objects/PointClass/readonly.php similarity index 100% rename from Koterov-php-training/classes_and_metods/PointClass/readonly.php rename to Koterov-php-training/classes_and_objects/PointClass/readonly.php diff --git a/Koterov-php-training/classes_and_metods/PointClass/readonly_construct.php b/Koterov-php-training/classes_and_objects/PointClass/readonly_construct.php similarity index 100% rename from Koterov-php-training/classes_and_metods/PointClass/readonly_construct.php rename to Koterov-php-training/classes_and_objects/PointClass/readonly_construct.php diff --git a/Koterov-php-training/methods_of_classes/greeting.php b/Koterov-php-training/methods_of_classes/greeting.php new file mode 100644 index 0000000..dcaa02f --- /dev/null +++ b/Koterov-php-training/methods_of_classes/greeting.php @@ -0,0 +1,8 @@ +say('PHP'); +echo "

"; + + +require_once 'point.php'; + +$point = new Point(3, 5); +// $point->__construct(); +// $point->inner(); +echo "
"; +var_dump( $point->getX()); +echo "
"; +var_dump( $point->getY()); +echo "

"; + +// $point->setX(5); +// $point->setY(7); + +var_dump( $point->getX()); +echo "
"; +var_dump( $point->getY()); +echo "

"; + +echo $point->distance(); + +echo '
';
+print_r($point);
+echo '
'; + +// echo $point->x; +// echo '
'; + +echo '
';
+print_r(get_class_methods($point));
+echo '
'; + +if (method_exists($point,'say')) { + echo $point->say('PHP'); +} + +$greeting = new Greeting; + +$greeting->x = 5; +if (method_exists($greeting,'x')) { +echo $greeting->x; +} + +$point->z = 5; + +echo '
';
+print_r($point->listVariables());
+echo '
'; \ No newline at end of file diff --git a/Koterov-php-training/methods_of_classes/point.php b/Koterov-php-training/methods_of_classes/point.php new file mode 100644 index 0000000..e7638c1 --- /dev/null +++ b/Koterov-php-training/methods_of_classes/point.php @@ -0,0 +1,46 @@ +'; + $this->x = $x; + $this->y = $y; + } + + public function inner() + { + $this->__construct(); + } + + // public function setX(int $x): void + // { + // $this->x = $x; + // } + // public function setY(int $y): void + // { + // $this->y = $y; + // } + public function getX(): int + { + return $this->x; + } + public function getY(): int + { + return $this->y; + } + public function distance(): float + { + return sqrt($this->getX() ** 2 + $this->getY() ** 2); + } + + public function listVariables(): array + { + return get_object_vars($this); + } + + +} \ No newline at end of file diff --git a/cristmass-tree/index.php b/cristmass-tree/index.php new file mode 100644 index 0000000..0ffa44a --- /dev/null +++ b/cristmass-tree/index.php @@ -0,0 +1,6 @@ +drawTree(); diff --git a/cristmass-tree/tree.php b/cristmass-tree/tree.php new file mode 100644 index 0000000..f359b0b --- /dev/null +++ b/cristmass-tree/tree.php @@ -0,0 +1,25 @@ +height = $height; + } + + public function drawTree(): void + { + $width = 2 * $this->height - 1; + for ($i = 1; $i <= $this->height; $i++) { + $stars = 2 * $i - 1; + $spaces = ($width - $stars); + echo str_repeat(" ", $spaces) . str_repeat("*", $stars) . "
"; + } + } +} \ No newline at end of file