Урок № 1 - Самые основы.

Starkark

Заблокирован
Сообщения
0
Симпатии
0
Баллы
0
Переменные выполняют работу - хранение данных в оперативной памяти, а за хорошую работу надо платить. Именно поэтому переменная представлена в виде знака доллара и названия переменной. К примеру: $variable .
Сама по себе переменная существовать не может. Ей нужны её данные так-же, как нам холодильник. При помощи присваивания мы кладём в переменную данные. Присваивание выглядит следующим образом: $var = что-то;
Правильное имя переменной должно начинаться с буквы или символа подчеркивания с последующими в любом количестве буквами, цифрами или символами подчеркивания.

Так же как и наш холодильник, переменная хранит еду.
Еда бывает разных типов - напитки, гарниры, салаты, печеное, молочные продукты и т.д.
Данные тоже бывают разных типов.. целые числа, дробные числа, наборы букв, наборы других данных и еще несколько.

Целое число ( Integer )
Как вам известно, числа бывают положительные, отрицательные и в разных системах исчисления. Чаще всего подразумевается что целое это число из множества Z = {..., -2, -1, 0, 1, 2, ...}.
Предел совершенства наших компьютеров позволяет использовать в качестве целого числа, числа из диапазона Signed: −2,147,483,648 to +2,147,483,647.
<?PHP

$a = 1234; // десятичное число
$a = -123; // отрицательное число
$a = 0123; // восьмеричное число (эквивалентно 83 в десятичной системе)
$a = 0x1A; // шестнадцатеричное число (эквивалентно 26 в десятичной системе)

?>
Возможно тебе будет любопытно что произойдёт если указать число вне диапазона..
Я тебе напомню попробовать в конце урока =)

Дробные числа ( Float )
Числа с плавающей точкой (они же числа двойной точности или действительные числа)
отличная кандидатура на хранение к примеру результата деления 7 на 3
<?PHP

$a = 1.234;
$b = 1.2e3; // 1.2 x 10^3
$c = 7E-10; // Из курса математики напомню что буквой e обозначают экспоненту.

?>
Как правило диапазон возможностей здесь немного шире как правило, ~1.8e308 с точностью около 14 десятичных цифр (64-битная система)

Довольно часто простые десятичные дроби вроде 0.1 или 0.7 не могут быть преобразованы в свои внутренние двоичные аналоги без небольшой потери точности. Это может привести к неожиданным результатам.
Это связано с невозможностью точно выразить некоторые дроби в десятичной системе счисления конечным числом цифр. Например, 1/3 в десятичной форме принимает вид 0.3333333. . ..

Строки ( String )
Строка - это набор символов. В PHP символ это то же самое, что и байт, это значит, что возможно ровно 256 различных символов.
Замечание: Нет никаких проблем, если строка очень велика. Практически не существует ограничений на размер строк, налагаемых PHP, так что нет абсолютно никаких причин беспокоиться об их длине.
Строки в php можно определить тремя способами: одинарными кавычками, двойными кавычками и heredoc синтаксисом.
<?PHP

echo 'это простая строка';

echo 'Также вы можете вставлять в строки
символ новой строки таким образом,
поскольку это нормально';

// Выведет: Однажды Арнольд сказал: "I'll be back"
echo 'Однажды Арнольд сказал: "I\'ll be back"';
// Обрати внимание: в строке присутствует одинарная кавычка. Для того, чтобы php
// понял, что это не конец строки, а часть ее, нам нужно ему об этом сообщить.
// Обратный слэш выполняет функцию Экранирования.

// Выведет: Это не вставит: \n новую строку
echo 'Это не вставит: \n новую строку';
// В операционных системах используются особые специальные символы в тексте
// которые помогают системе понять, где находится конец строки и начинается новая,
// где находится табуляция и где вообще заканчивается весь текст.
// Символ \n обозначает конец строки и переход на новую.
// Слэш является частью символа, а не экранированием.
// Если бы php всё таки вставил этот символ, то мы бы получили вывод в две строки:
// Это не вставит:
// новую строку

// Выведет: Переменные $expand также $either не подставляются
echo 'Переменные $expand также $either не подставляются';

?>
Строка в двойных кавычках
Так же как и в одинарных, текст взятый в двойные кавычки это строка.
$var = "val";
Если строка определяется в двойных кавычках, либо при помощи heredoc, переменные внутри нее обрабатываются.

Если интерпретатор встречает знак доллара ($), он захватывает так много символов, сколько возможно, чтобы сформировать правильное имя переменной. Если вы хотите точно определить конец имени, заключайте имя переменной в фигурные скобки.
<?PHP

$beer = 'Heineken';
echo "$beer's taste is great"; // работает, "'" это неверный символ для имени переменной
echo "He drank some $beers"; // не работает, 's' это верный символ для имени переменной
echo "He drank some ${beer}s"; // работает
echo "He drank some {$beer}s"; // работает

?>
Heredoc-текст ведет себя так же, как и строка в двойных кавычках, при этом их не имея. Это означает, что вам нет необходимости экранировать кавычки в heredoc.
Напомню что если в строке определенной кавычками встречается кавычка, нужно
сообщить php что это часть строки - экранировать кавычку. Как в примере $var='I\'m';
<?PHP

echo <<<HEREDOC1
Меня зовут "$name". Я печатаю very$fast.
Теперь я вывожу very{$fast}.
Это должно вывести заглавную букву 'A': \x41
HEREDOC1;

?>
В данном примере строка "Меня зовут ... ... букву А" образовывается при помощи синтаксиса HereDoc. Обратите внимание что вместо кавычек в начале и конце строки стоит название строки - HEREDOC1. <<<HEREDOC1 означает начало строки под названием HEREDOC1, а HEREDOC1; её конец.

Массив ( Array )
Массив в php это холодильник хранящий набор продуктов.
<?PHP

$array = Array('Сыр','Колбаса');

?>
В данном примере в нашем холодильнике array находятся два продукта относящиеся к категории Строк (и потому заключены в кавычки).
Необычным тебе может показаться что счёт продуктов в программировании начинается с нуля. Именно поэтому в нашем массиве нулевой элемент будет 'Сыр', а первый элемент 'Колбаса'.
<?PHP

$array = Array('Сыр','Колбаса'); // Определяем массив с двумя строками
echo $array[0]; // Обращение к нулевому элементу. Выведет Сыр.
$array[1] = 'Мороженое'; // Присвоение первому элементу. заменяем колбасу на молоко
echo $array[1]; // Выведет Мороженое.

?>

Ассоциативные массивы
С таким же успехом как и в предыдущем примере, элементами массива могут быть не только строки, но и другие переменные. $array = Array($var1 , $var2);
У любой переменной есть название и есть значение, а это значит что в массив мы можем также записать пары данных в виде название-значение. Массив такого рода называется
ассоциативным благодаря ассоциации названия и значения, а название в таком массиве называется ключом.
$arr = Array('key'=>'val' , 'key2'=>'val2');
Таким образом в массиве нет нулевого и первого элемента, но есть элемент key и элемент key2.
<?PHP

$arr = Array('key'=>'val' , 'key2'=>'val2'); // Определяем массив с двумя строками
echo $arr['key']; // Обращение к элементу с ключом key. Выведет val
echo $arr[0]; // Обращение к нулевому элементу. Ошибка. Нет такого элемента
$arr['key2'] = 'Мороженое'; // Присвоение элементу с ключом key2 нового значения.
echo $arr['key2']; // Выведет Мороженое.

?>

Многомерные массивы
Массив может содержать любой тип данных в том числе и другой массив.
Массив массивов называется многомерным массивом.
Всего есть два типа массивов - числовые и ассоциативные.
Первый вид представляет из себя массив с ключами в виде чисел как в самом первом примере. Всё остальное является ассоциативным массивом.
<?PHP

$ARRAY = Array // числовой. Ключи 0,1 и 2
(
Array('Сыр','Колбаса') , // числовой. Ключами являются 0 и 1
Array('key'=>'val' , 'key2'=>'val2') , // Ассоц. Ключи key и key2
Array('key3'=>'val3', 'Чипсы') // Тоже Ассоц. Ключи key3 и 0
);

// Для обращения к какому либо элементу многомерного массива, к примеру к val3
// следует обращаться так:
echo $ARRAY[2]['key3'];
// В массиве ARRAY обращаемся сначала к элементу номер 2 [ Array('key3'=>'val3', 'Чипсы') ]
// а там к элементу с ключом key3


$arr = array("somearray" => array(6 => 5, 13 => 9, "a" => 42));
echo $arr["somearray"][6]; // 5
echo $arr["somearray"][13]; // 9
echo $arr["somearray"]["a"]; // 42

?>

Создание массива и его наполнение
Содержание массива может быть задано как это было в примерах - заранее.
$arr = Array(1,2,3); // ключи 0,1 и 2
Так же как мы присваивали ранее элементу в массиве другое значение
можно создать и новый элемент
$arr[3] = 5; // Создаётся элемент с индексом 3 и ему тут же присваивается число (integer) 5.

Попробуй предположить что произойдёт при создании элемента $arr[] = 6;.
В этом случае, создастся элемент в массиве, ему присвоится значение 6, а индекс с которым элемент запишется в массив будет максимальный целочисленные уже существующий индекс + 1.
Таким образом после $arr[3] = 5; максимальный целочисленный индекс стал 3.
При $arr[] = 6; максимальный индекс + 1 будет 4. Таким образом $arr[4] становится 6.
<?PHP

$arr = Array('key3'=>'val3', 'Чипсы') ;// напомним индексы key3 и 0
$arr[] = 'Банан'; // Попробуйте сказать какой индекс будет у элемента Банан ?

$arr = Array('key3' => 'val3', 'tasty' => 'Чипсы') ;
$arr[] = 'Банан'; // Попробуйте сказать какой индекс будет у элемента Банан теперь?

/* ОТВЕТ:
в первом случае максимальный целочисленный индекс 0. 0+1 =1
значит индекс банана будет 1.

Во втором случае максимального целочисленного индекса нет вообще
поэтому новый целочисленный индекс будет 0 .
*/

?>