PHP DevelStudio - Хеш-таблицы, множества и массивы
 

Создание программ

Полноценная среда программирования php , которая позволяет создавать exe программы на языке PHP с поддержкой GUI или без программирования, с помощью различных мастеров.
 

DevelStudio v3.0 beta конструктор программ

 

Проекты

Хеш-таблицы, множества и массивы

Хеш массивы, или просто - массивы, известны во многих языках. Обычно массив это список, где у каждого элемента есть индекс. Простые массивы в качестве индексов могут иметь только число и часто индексы начинаются с 0. В Orion и php массивы в качестве индексов могут иметь строковое значение, поэтому они и становятся хеш-массивами.

Общий синтаксис


Объявление массива происходит через функцию Array, как в классическом php.


$var = array(); // пустой массив
$var = array(1,2,3,4,5); // массив чисел

Когда мы объявляем массив не задавая ключей (т.е. индексов), они определяются автоматически, начиная обычно с 0. Если вы хотите объявить массив с ключами, то необходимо это сделать так:


$var = array('key1'=>1,'key2'=>2,'key3'=>3);
$var = array(0=>1,1=>2,2=>3,3=>4,4=>5);

Рассмотрим сложный вариант, допустим вы хотите чтобы массив автоматически начинал индексироваться не с 0, а с 10 например. Такое тоже можно организовать:


$var = array(10=>1,2,3,4,5);
// этот массив эквивалентен следующему
$var = array(10=>1,11=>2,12=>3 ..

Ключами массива могут быть числа, строки, логические переменные или даже пустая строка. Null для ключа массива будет все равно что пустая строка.

Добавление элементов


В Орионе есть такая же возможность добавления элементов в массив как и в PHP:


$var[] = 1;
$var[] = 2;
$var[] = 3;
$var[] = 4;

Когда вы пишите [] обращение к массиву без ключа, то происходит добавление нового Null элемента в массив, все ключи тоже обычно начинаются с нуля. Если вы хотите чтобы добавление начиналось не с нуля, то можно сделать так:


$var[10] = 1;
$var[] = 2;
$var[] = 3;
...

Массивы как множества


Отличительной особенностью Ориона являются псевдо-множества, которые ничем не отличаются от массивов. Это просто короткая запись объявления массивов, которая отсутствует в PHP.

Рассмотрим пример, чтобы стало понятно:


$var = [1,2,3,4,5];
// эта запись эквивалентна
$var = array(1,2,3,4,5);

Как мы видим, такое объявление короче и часто удобней. Для компилятора эта одна и та же конструкция. Также давайте посмотрим другие примеры:


$var = ['key1'=>1,'key2'=>2,3];
// это массив будет следующим
// array('key1'=>1,'key2'=>2,0=>3)

Многомерные массивы


Орион поддерживает многомерные массивы как и PHP. Многомерный массив - это массивы, некоторые элементы которого, могут быть тоже массивами как одномерными, так и многомерными.

Объявлять многомерные массивы также просто как и одномерные:


$var = array(1=>array(20,30),2=>array(40,50));
// обращаться можно так:
echo $var[2][0]; // выдаст 40

Рассмотрим эту же запись в виде множества:


$var = [1=>[20,30],2=>[40,50]];
// вы видите, что эта запись короче и удобней
// но если вы хотите совместимости с оригинальным ПХП стоит отказаться от такой записи

Множества как мульти-результат функций


Известно, что в некоторых языках функция может возвращать несколько результатов одновременно. В Орионе это тоже возможно элегантно и красиво, благодаря записи массивов как множеств:


function myFunc(){
   return [20,30];
}
list($x,$y) = myFunc();
echo $x; // выведет 20
echo $y; // выведет 30

Функция list превращает массив в переменные.

Строки как массивы


Строки на самом деле ведут себя немного также как и массивы. К каждому символу строки можно обратится по его индексу прямо как в массиве, так можно изменять и получать определенные символы строки:


$str = 'My String';
echo $str[3]; // выведет S
$str[0] = 'm';
echo $str; // выведет 'my String';

вернутся к списку