Pull to refresh
6
0
Журналистика в стиле Гонзо @npFly

User

Send message
Как не ценят? Оценок у тебя почти как у победителя…
О, мастак бинарного поиска!
Молодец + тебе, а то мы тут голову ломали чей флаг :)
Вспомнил недавний перл Замыкания в php на блоге Mail.ru от их PHP разработчика, после которого эта новость для меня не удивительна.
а что вы имеете против goto, мне лично кажется странно что его ввели так поздно!
Вам и goto подозрительным кажется!
что вы с ним общаетесь — он же ТРОЛЪ!!!
Вообще как я писал выше замыкания нужны для создания анонимных функции, странно что вы этого не знаете. Вся статья не о замыканиях, а о анонимных функциях!
Вот вот и я подумал, а разве замыкания не нужны для анонимных функции это не одно и тоже?

Автор учи мат часть: Closure (computer science)!
блин да ты прочитай его:

public functio
        if (is_scan &__get($name)
    {lar($this->data[$name]))


ты видишь?
Здесь как бы идёт речь о вложенных многоуровневых массивах с применением метода перегрузки объекта. Решения могут быть разными, например я бы расцеловал если бы вы написали как сделать следующий код выполняемым:

$a = new Parameters;
$a->b->c->d = 'variables';

Есть варианты? Тока две строчки, неважно как и что вы опишите в классе, не считается только хард-код как у автора;
не надо даже проверять, и глаз орла иметь не надо чтобы увидеть что код выше битый — не спеши так. Внизу код видел.
ты бы перед тем как постить хотя бы проверил свой код! и в каком месте я усложнил, уж прощё твоего у меня точно
Совершенно верно, во всяком случае сделать это так гибко как на Python или Ruby не получится! Единственный простой способ сделать многоуровневые вложенные контейнеры данных это определять их самом, методы перегрузки не помогут!

class ParameterHolder
{
 private
  $parameters = array();
  
 public function __set($name, $value)
 {
  $this->parameters[$name] = $value;
 }
 
 public function & __get($name)
 {
  if (array_key_exists($name, $this->parameters))
  {
   $value = & $this->parameters[$name];
  }
  return $value;
 }
}

// Применение

$parameters = new ParameterHolder();

$parameters->a1 = new ParameterHolder();
$parameters->a2 = new ParameterHolder();
$parameters->a2->b2 = new ParameterHolder();

$parameters->a1->b1 = 'variable1'; // variable1
$parameters->a2->b2->c2 = 'variable2'; // variable2


* This source code was highlighted with Source Code Highlighter.
Любой прокси код который обеспечивает доступ к данным ЧЕРЕЗ себя — декоратор

то есть любой геттер это декоратор? Пмойму вы пишите бред!

C тез пор как этот хард код используется внутри или при создании\описании внутрених данных, но не при доступе к нему

Вообще-то это и называется хард-код! Ведь если каждый раз когда придётся пере использовать этот код надо будет вносить изменение в класс: сорри это не вяжется с принципами ООП

Вы МОЖЕТЕ переопредилить get\set любого значения на выполнение любых действий.
Вплоть до того что при запросе some( в данном случае ) его внутрений массив будет подгружен. Это можно например расширить до развертки внешний ключей в моделе ORM.


Что ты куришь?
1) Покажите в каком месте это декоратор! Если мне не изменяет память, декоратор должен декорировать данные. В данном примере я этого не наблюдаю!

2) С каких пор хард код называется контролем над записью данных?

protected $data = array('some' => array('sub' => 'data'));

я бы ещё понял если он инициализировал это в конструкторе:

$my = new MyClass(array('some' => array('sub' => 'data')));

3) Что значит навесить сколько угодно property? Разве есть какой то лимит?

В общем какая то непонятная реализация контейнера данных, причём непонятно зачем используются методы перегрузки, неужели без них не обойтись?
Боже мой, автор не знает как передать переменную по ссылке, но уже гоняет ActiveRecord! Странно всё это, раньше было иначе.
что ты там куришь?
от чего мозги то бережёшь?
1
23 ...

Information

Rating
Does not participate
Location
Латвия
Date of birth
Registered