[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Строготипизированный массив
Страницы: 1, 2, 3
Zzepish
Вообщем сделал класс, который можно использовать, как массив для строгой типизации данных.
https://bitbucket.org/Zzepish/strictarray/src . Так-же есть поддержка интерфейсов и классов-родителей. МБ надо будет кому
Valick
Цитата (Zzepish @ 6.10.2018 - 22:48)
сделал объект

уже страшно

_____________
Стимулятор ~yoomoney - 41001303250491
Zzepish
Valick
Если честно - не понял юмора sad.gif
Видимо слишком уставший( расшифруй
Valick
Расшифровать разницу между классом и объектом? smile.gif


_____________
Стимулятор ~yoomoney - 41001303250491
Zzepish
Valick
А. Ты про это. Сорян - тупонул
Rand
Надеюсь когда-нибудь в PHP появятся дженерики, чтобы не заниматься написанием вот таких решений.

Zzepish
get_class($value) !== $this->type && !is_subclass_of($value, $this->type)

Есть какие-то отличия?
!($value instanceof $this->type)

IncorrectValueTypeException я бы наследовал от TypeError.
Zzepish
Rand
Угу. Я на это молюсь. Вроде бы вот что-то хотят выкатить:
Тык.

Rand
instanceof не работает если тип объекта, с которым сравниваем - строка. Как следствие - заюзал is_subclass_of. Вместо get_class можно было заюзать, но тут они равнозначны, имхо
Rand
Цитата (Zzepish @ 7.10.2018 - 02:54)
instanceof не работает если тип объекта, с которым сравниваем - строка

Если класть строку в переменную, то работает, в данном случае строка будет внутри $this->type, так что нормально должно быть.
Zzepish
Rand
потестил:
<?php
$datetime = new \DateTime();

var_dump($datetime instanceof 'DateTime');

Вылетает ошибка:
<br />
<
b>Parse error</b>: syntax error, unexpected ''DateTime'' (T_CONSTANT_ENCAPSED_STRING) in <b>[...][...]</b> on line <b>4</b><br />


Или я не так понял?
Rand
Zzepish
<?php
$datetime = new \DateTime();
$type = 'DateTime';

var_dump($datetime instanceof $type);
Zzepish
Rand
Отработало. Странно. Заменю. Можешь сбросить ссылку - что я пропустил в своем образовании?
Rand
Zzepish
Официальная дока подойдет? http://php.net/manual/ru/language.operators.type.php biggrin.gif
Zzepish
Rand
Конечно smile.gif
Все добавил и поправил )



P.S. я в низ не дочитал. Первые примеры увидел (и прочитал описание), и все. Большое тебе спасибо
twin
В конструкторе нельзя использовать return.
Цитата (Valick @ 6.10.2018 - 20:13)
Расшифровать разницу между классом и объектом?
Как это класс может быть массивом? Я не видел как было сначала, но "сделал объект" было явно лучше. Хотя правильно было вместо:
Цитата (Zzepish @ 6.10.2018 - 19:48)
сделал класс, который можно использовать, как массив для строгой типизации данных.
написать
Цитата
сделал класс, генерирующий объекты, которые можно использовать как типизированные массивы


А теперь расскажи, для чего это нужно? Для процедурного программирования? Я не против процедурки, мне просто интересно.

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

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

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

user posted image
Zzepish
twin
В конструкторе можно его использовать посмотри контекст. Он просто прерывает дальнейшее выполнение программы.
.
Суть в том, чтоб иметь возможность создавать коллекции элементов одного типа с контролем на уровне массива. Т.е.: чтоб никто не пихнул лишнего
Быстрый ответ:

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