mirror of
https://github.com/igorsimdyanov/php8.git
synced 2025-07-25 17:13:08 +00:00
Главы 13-15: корректура
This commit is contained in:
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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 ";
|
||||||
|
@ -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 ";
|
||||||
}
|
}
|
||||||
|
@ -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 ";
|
||||||
}
|
}
|
||||||
|
@ -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 ";
|
||||||
|
@ -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) ";
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
|
@ -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();
|
||||||
|
@ -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();
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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 ";
|
||||||
}
|
}
|
||||||
|
@ -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 ";
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
function block()
|
function block()
|
||||||
{
|
{
|
||||||
while(true) {
|
while (true) {
|
||||||
$string = yield;
|
$string = yield;
|
||||||
echo $string;
|
echo $string;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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':
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
Reference in New Issue
Block a user