Главы 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)
{
echo $a, "<br />";
function child($b) {
function child($b)
{
echo $b + 1, "<br />";
return $b * $b;
}

View File

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

View File

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

View File

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

View File

@ -5,10 +5,10 @@ function square($value)
}
function even_square($arr) {
foreach($arr as $value) {
foreach ($arr as $value) {
if ($value % 2 == 0) yield from square($value);
}
}
$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
function collect(array $arr, callable $callback)
{
foreach($arr as $key => $value) {
foreach ($arr as $key => $value) {
yield $key => $callback($value);
}
}
@ -16,6 +16,6 @@ $arr = [
];
$collect = collect($arr, fn($e) => $e * $e);
foreach($collect as $key => $val) {
foreach ($collect as $key => $val) {
echo "$val ($key) ";
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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