[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как вынести переменные в поля класса
Страницы: 1, 2, 3
twin
Michael
Так и есть. Только быть фриком и ботаном гораздо приятнее, чем негром, клепающим одно и то же изо дня в день. Бизнес победил, о чем и речь. Впрочем как победили и посредственности, не способные на "нестандартные" (читай: самостоятельные) решения. Их радость тоже понятна, теперь любая бестолочь может возомнить себя гуру, изучив пару строк документации фреймворка. Манки-код рулит.

Печаль в том, что таких оказалось большинство, и они теперь усадили устойчивое мнение, что если не как все, то говнокод. Будь негром, не высовывайся. Чо, самый умный? biggrin.gif biggrin.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
chee
Цитата (twin @ 5.03.2021 - 12:19)
они теперь усадили устойчивое мнение, что если не как все, то говнокод

Откуда такие выводы?

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
А что, эта тема не показательна?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Анонимный Пользователь
Привет! Ниже более менее правильный ответ на мой изначальный вопрос. Все-таки я считаю, что кому-то польза будет. В прежнем виде оно было несколько несуразно. Исправлю это. Именно: для того, что бы функция обладала всеми своими свойствами ее надо привязывать bindTo отдельно.



<?php declare(strict_types=1);
class App
{
public static $obj;
public static $objFilter;
public static $objShow;
const SQUARE_LIMIT = 4;

public static function main()
{
self::$obj = (function ($json) {
return array_map (fn($item) =>
new class ($item) {

public int $width;
public int $height;

function __construct($item) {
$this->width =$item[0];
$this->height =$item[1];
}

public function square() {
return ($this->width * $this->height);
}

}
, $json);
})->bindTo(null);

self::$objFilter = (function ($obj) {
return array_filter($obj, fn($v) => ($v->square() >= self::SQUARE_LIMIT));
})->bindTo(null);
}
public static function show()
{
self::$objShow = (function ($obj) {
return array_map (fn($item) =>
new class ($item) {
function __construct($item) {
echo " widht -- ".$item->width." ";
echo " height -- ".$item->height."\n";
echo " apply function -- ".$item->square()."\n";
}
}
, $obj);
})->bindTo(null);


$objShowFunction = self::$objShow;
$objFilterFunction = self::$objFilter;
$objFunction = self::$obj;

echo "MULTIPLE::\n";
$objShowFunction($objFunction(json_decode('[[1,2], [3,4], [5,6]]')));

echo "FILTER * > 4::\n";
$objShowFunction($objFilterFunction($objFunction(json_decode('[[1,2], [3,4], [5,6]]')))
);

}
public static function init() {
App::main();
App::show();
}
}
;
// OUTPUT
App::init();

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.