Вывод
Дневник цели
На почту пришла вакансия, в ней есть тестовое задание, попробую решить.
https://docs.google.com/document/d/1nNvmuy_Chr-5ZmTGUCUquzYRy25geKSVxY47FtRUX4s/edit#
Целые числа могут быть указаны в десятичной (основание 10), шестнадцатеричной (основание 16), восьмеричной (основание 8) или двоичной (основание 2) системе счисления, с необязательным предшествующим знаком (- или +).
$a = 1234; // десятичное число
$a = -123; // отрицательное число
$a = 0123; // восьмеричное число (эквивалентно 83 в десятичной системе)
$a = 0x1A; // шестнадцатеричное число (эквивалентно 26 в десятичной системе)
$a = 0b11111111; // двоичное число (эквивалентно 255 в десятичной системе)
Готовимся к собеседованию по PHP: Всё об итерации и немного про псевдотип «iterable»
Что работает быстрее: преинкремент (++$i) или постинкремент ($i++)?
Преинкремент быстрее, т.к. постинкремент создает временную переменную, в то время как преинкремент изменяет саму переменную непосредственно.
Сколько типов данных в РНР?
PHP поддерживает 10 базовых типов данных.
4 скалярных типа:
— boolean [ bʊˈlɪən ]. Логический тип данных, переменные данного типа могут принимать значения true или false.
— integer[ ˈɪn.tɪ.dʒər ]. Целочисленный тип данных, переменные могут принимать целые значения (…-2, -1, 0, 1, 2…) в диапазоне от -2^31 до +2^31. Если значение превышает данный порог — оно автоматически переводится в тип float.
— float [ fləʊt ]. Числовой тип данных с плавающей точкой, может содержать как целые, так и дробные величины.
— string [ strɪŋ ]. Строковый тип данных. Содержит нефиксированное количество различных символов. PHP не накладывает никаких ограничений на длину строки, поэтому можно смело работать даже с ОЧЕНЬ большими строками.
4 комплексных (составных) типа:
— array [ əˈreɪ ]. Массив, содержит упорядоченный список элементов.
— object [ ˈɒbdʒɪkt ]. Объект, содержит некий объект (экземпляр класса).
— Iterable - псевдотип, введенный в PHP 7.1. Он принимает любой array или объект, реализующий интерфейс Traversable. Оба этих типа итерируются с помощью foreach и могут быть использованы с yield from в генераторах.
— Callback. Некоторые функции, такие как call_user_func() или usort() принимают в качестве параметра определенные пользователем callback-функции. Callback-функции могут быть не только простыми функциями, но также методами объектов, включая статические методы классов.
2 специальных типа:
— resource [ rɪˈsɔːs ]. Ссылка на абстрактный элемент, т.н. внешний ресурс. Примеры внешних ресурсов — ссылка на файл и ссылка на результат выполнения запроса.
— NULL [nʌl]. Пустой тип данных, обозначающий отсутствие какого-либо значения. О таких значениях обычно говорят «не определено». Пустым значением можно инициализировать переменные любого другого типа.
Комментарии
Данила, дам совет. Иногда проще уволиться и найти более выгодную вакансию, нежели работать на повышение. Нужно смотреть по ситуации.
И еще, работа дает опыт, но при этом лучше параллельно заниматься своим проектом, так как например я как минимум половину опыта получил самообразованием (работаю больше 3-х лет)
Иерархические структуры данных
Существует несколько шаблонов проектирования баз данных для хранения и обработки иерархических структур:
Adjacency List («список смежности»)
[ əˈʤeɪsənsɪ ][ lɪst ]
Как правило, такая структура данных предполагает хранение информации о смежных вершинах нашего дерева (обычно это id родительского элемента) .
Materialized Path («материализованный путь», Path Enumeration)
[ məˈtɪə.ri.ə.laɪz ][ pæθ ]
Каждый элемент дерева хранит полный путь до вершины. Подробнее
Nested Sets («вложенные множества»)
[ nest ][ set ]
Предположим, у нас есть некоторое дерево, и мы говорим, что у каждого элемента дерева есть пара значений, условно называемых как левое и правое. Мы обходим это дерево от корня в глубину (рекурсивно) и присваиваем некий порядковый индекс левому значению вершины, когда попадаем на нее первый раз, и правому значению, когда попадаем на нее во второй раз или эта вершина является конечной вершиной дерева (не имеющей потомков). Подробнее
Closure Table («таблица связей»)
[ ˈkləʊ.ʒər ][ ˈteɪbl ]
Суть данного шаблона проектирования заключается в том, что связи между сущностями хранятся в отдельной таблице, тогда как основная таблица содержит только данные самих сущностей. Подробнее