Главы 13-15: корректура

This commit is contained in:
Igor Simdyanov
2022-07-22 09:25:39 +03:00
parent 750a9439c3
commit 034e4442f3
22 changed files with 39 additions and 36 deletions

View File

@ -2,7 +2,8 @@
function father($a) function father($a)
{ {
echo $a, "<br />"; echo $a, "<br />";
function child($b) { function child($b)
{
echo $b + 1, "<br />"; echo $b + 1, "<br />";
return $b * $b; return $b * $b;
} }

View File

@ -5,4 +5,4 @@ function generator()
yield from [2, 3]; yield from [2, 3];
} }
foreach(generator() as $i) echo "$i "; foreach (generator() as $i) echo "$i ";

View File

@ -1,13 +1,13 @@
<?php <?php
function collect(array $arr, callable $callback) function collect(array $arr, callable $callback)
{ {
foreach($arr as $value) { foreach ($arr as $value) {
yield $callback($value); yield $callback($value);
} }
} }
$arr = [1, 2, 3, 4, 5, 6]; $arr = [1, 2, 3, 4, 5, 6];
$collect = collect($arr, fn($e) => $e * $e); $collect = collect($arr, fn($e) => $e * $e);
foreach($collect as $val) { foreach ($collect as $val) {
echo "$val "; echo "$val ";
} }

View File

@ -1,21 +1,21 @@
<?php <?php
function collect($arr, $callback) function collect($arr, $callback)
{ {
foreach($arr as $value) { foreach ($arr as $value) {
yield $callback($value); yield $callback($value);
} }
} }
function select($arr, $callback) function select($arr, $callback)
{ {
foreach($arr as $value) { foreach ($arr as $value) {
if($callback($value)) yield $value; if ($callback($value)) yield $value;
} }
} }
$arr = [1, 2, 3, 4, 5, 6]; $arr = [1, 2, 3, 4, 5, 6];
$select = select($arr, fn($e) => $e % 2 == 0); $select = select($arr, fn($e) => $e % 2 == 0);
$collect = collect($select, fn($e) => $e * $e); $collect = collect($select, fn($e) => $e * $e);
foreach($collect as $val) { foreach ($collect as $val) {
echo "$val "; echo "$val ";
} }

View File

@ -5,10 +5,10 @@ function square($value)
} }
function even_square($arr) { function even_square($arr) {
foreach($arr as $value) { foreach ($arr as $value) {
if ($value % 2 == 0) yield from square($value); if ($value % 2 == 0) yield from square($value);
} }
} }
$arr = [1, 2, 3, 4, 5, 6]; $arr = [1, 2, 3, 4, 5, 6];
foreach(even_square($arr) as $val) echo "$val "; foreach (even_square($arr) as $val) echo "$val ";

View File

@ -1,7 +1,7 @@
<?php <?php
function collect(array $arr, callable $callback) function collect(array $arr, callable $callback)
{ {
foreach($arr as $key => $value) { foreach ($arr as $key => $value) {
yield $key => $callback($value); yield $key => $callback($value);
} }
} }
@ -16,6 +16,6 @@ $arr = [
]; ];
$collect = collect($arr, fn($e) => $e * $e); $collect = collect($arr, fn($e) => $e * $e);
foreach($collect as $key => $val) { foreach ($collect as $key => $val) {
echo "$val ($key) "; echo "$val ($key) ";
} }

View File

@ -2,13 +2,13 @@
function crange($size) function crange($size)
{ {
$arr = []; $arr = [];
for($i = 0; $i < $size; $i++) { for ($i = 0; $i < $size; $i++) {
$arr[] = $i; $arr[] = $i;
} }
return $arr; return $arr;
} }
$range = crange(1_024_000); $range = crange(1_024_000);
foreach($range as $i) echo "$i "; foreach ($range as $i) echo "$i ";
echo '<br />' . PHP_EOL; echo '<br />' . PHP_EOL;
echo memory_get_usage(); echo memory_get_usage();

View File

@ -1,12 +1,12 @@
<?php <?php
function crange($size) function crange($size)
{ {
for($i = 0; $i < $size; $i++) { for ($i = 0; $i < $size; $i++) {
yield $i; yield $i;
} }
} }
$range = crange(1024000); $range = crange(1024000);
foreach($range as $i) echo "$i "; foreach ($range as $i) echo "$i ";
echo '<br />' . PHP_EOL; echo '<br />' . PHP_EOL;
echo memory_get_usage(); echo memory_get_usage();

View File

@ -1,7 +1,7 @@
<?php <?php
function simple($from = 0, $to = 100) function simple($from = 0, $to = 100)
{ {
for($i = $from; $i < $to; $i++) { for ($i = $from; $i < $to; $i++) {
yield $i; yield $i;
} }
} }
@ -9,7 +9,7 @@ function simple($from = 0, $to = 100)
$obj = simple(1, 5); $obj = simple(1, 5);
// Выполняем цикл, пока итератор не достигнет конца // Выполняем цикл, пока итератор не достигнет конца
while($obj->valid()) { while ($obj->valid()) {
echo ($obj->current() * $obj->current()) . ' '; echo ($obj->current() * $obj->current()) . ' ';
// К следующему элементу // К следующему элементу
$obj->next(); $obj->next();

View File

@ -1,7 +1,7 @@
<?php <?php
function simple(int $from = 0, int $to = 100) function simple(int $from = 0, int $to = 100)
{ {
for($i = $from; $i < $to; $i++) { for ($i = $from; $i < $to; $i++) {
echo "значение = $i<br />"; echo "значение = $i<br />";
yield $i; yield $i;
} }

View File

@ -1,13 +1,13 @@
<?php <?php
function reject(array $arr, callable $callback) function reject(array $arr, callable $callback)
{ {
foreach($arr as $value) { foreach ($arr as $value) {
if(!$callback($value)) yield $value; if (!$callback($value)) yield $value;
} }
} }
$arr = [1, 2, 3, 4, 5, 6]; $arr = [1, 2, 3, 4, 5, 6];
$reject = reject($arr, fn($e) => $e % 2 == 0); $reject = reject($arr, fn($e) => $e % 2 == 0);
foreach($reject as $val) { foreach ($reject as $val) {
echo "$val "; echo "$val ";
} }

View File

@ -1,13 +1,13 @@
<?php <?php
function select(array $arr, callable $callback) function select(array $arr, callable $callback)
{ {
foreach($arr as $value) { foreach ($arr as $value) {
if($callback($value)) yield $value; if ($callback($value)) yield $value;
} }
} }
$arr = [1, 2, 3, 4, 5, 6]; $arr = [1, 2, 3, 4, 5, 6];
$select = select($arr, fn($e) => $e % 2 == 0); $select = select($arr, fn($e) => $e % 2 == 0);
foreach($select as $val) { foreach ($select as $val) {
echo "$val "; echo "$val ";
} }

View File

@ -1,7 +1,7 @@
<?php <?php
function block() function block()
{ {
while(true) { while (true) {
$string = yield; $string = yield;
echo $string; echo $string;
} }

View File

@ -1,13 +1,13 @@
<?php <?php
function simple($from = 0, $to = 100) function simple($from = 0, $to = 100)
{ {
for($i = $from; $i < $to; $i++) { for ($i = $from; $i < $to; $i++) {
echo "значение = $i<br />"; echo "значение = $i<br />";
yield $i; yield $i;
} }
} }
foreach(simple() as $val) { foreach (simple() as $val) {
echo 'квадрат = ' . ($val * $val) . '<br />'; echo 'квадрат = ' . ($val * $val) . '<br />';
if ($val >= 5) break; if ($val >= 5) break;
} }

View File

@ -3,7 +3,7 @@ class MinMax
{ {
public function __call(string $method, array $arr) public function __call(string $method, array $arr)
{ {
switch($method) { switch ($method) {
case 'min': case 'min':
return $this->min($arr); return $this->min($arr);
case 'max': case 'max':
@ -17,7 +17,7 @@ class MinMax
{ {
$result = $arr[0]; $result = $arr[0];
foreach($arr as $value) { foreach ($arr as $value) {
if ($value < $result) { if ($value < $result) {
$result = $value; $result = $value;
} }
@ -30,7 +30,7 @@ class MinMax
{ {
$result = $arr[0]; $result = $arr[0];
foreach($arr as $value) { foreach ($arr as $value) {
if ($value > $result) { if ($value > $result) {
$result = $value; $result = $value;
} }

View File

@ -3,7 +3,7 @@ class MinMax
{ {
public function __call(string $method, array $arr) public function __call(string $method, array $arr)
{ {
switch($method) { switch ($method) {
case 'min': case 'min':
return min($arr); return min($arr);
case 'max': case 'max':

View File

@ -1,5 +1,6 @@
<?php <?php
class Rainbow { class Rainbow
{
private const COLORS = [ private const COLORS = [
'red' => 'красный', 'red' => 'красный',
'orange' => 'оранжевый', 'orange' => 'оранжевый',
@ -12,7 +13,7 @@ class Rainbow {
public function __get(string $key) : ?string public function __get(string $key) : ?string
{ {
if(array_key_exists($key, Rainbow::COLORS)) { if (array_key_exists($key, Rainbow::COLORS)) {
return Rainbow::COLORS[$key]; return Rainbow::COLORS[$key];
} else { } else {
return null; return null;

View File

@ -1,10 +1,11 @@
<?php <?php
class Settings { class Settings
{
private array $properties; private array $properties;
public function __get(string $key) : ?string public function __get(string $key) : ?string
{ {
if(array_key_exists($key, $this->properties)) { if (array_key_exists($key, $this->properties)) {
return $this->properties[$key]; return $this->properties[$key];
} else { } else {
return null; return null;