Lab / php / Основы

Основы PHP

В этой заметке будут собраны базове подходы используеммые в PHP. Эта статья поможет начинающим держать основной арсенал синтаксиса и конструкция языка, всегда под рукой до тех пор, пока всё это не закрепится в голове.

Строки

<?php
	echo "Hello, world!"; // Простая строка
	echo "Hello," . " 
	" . "world" . "!"; // Несколько строк за один вывод
?>

Сравнения

Операторы сравнения это первые кирпичики для построения логики, скажем так — основы программирования.

> Больше чем
< Меньше чем
<= Меньше или равно
>= Больше или равно
\== Равно
!= Не равно

Пример с числами:

<?php
	$age = 17;

	if( $age > 16 ) {
		echo "You can drive!";
	}
?>

Пример со строкой:

<?php
	$name = "Edgar";

	if ($name == "Simon") {
		print "I know you!";
	}
	else {
		print "Who are you?";
	}
?>

Циклы и масивы

Теперь давайте рассмотрим как устроенны масивы данных и как можно сделать и вывод на страницу. Итак прстейшие одномерные массивы выглядять примерно так:

$colors = array("white","black","red","green");

По сути это переменная в которой храниться несколько значений. Мы можем выводить как отдельные значения, так и весь список. Что бы вывести отдельное значение используем его порядковый номер. Нумерация в массивах начинается с нуля, таким образом, что бы вывести red нам необходимо вызывать его по номеру 2.

echo $colors[2];

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

Пример "красивого" форматирования для функции var_dump():

echo "<pre>";
var_dump($colors);
echo "</pre>";

Для того, что бы вывести весь список, необходимо создать цикл, который будет проходить по массиву, перебирать его значения и выводить в документе:

foreach ($colors as $key => $value) {
 echo $value;
}

Разберём этот пример: Цикл проходит по масиву $colors по каждой его строке ($key) и присваивая каждый раз значение строки в переменную $value таким образом, через echo $value; мы выводим каждую строку на экран (в документ). Цикл будет выполняться столько раз, сколько строк есть в массиве и затем сам завершмтся.

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

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

$cart = array(
 array('product'=>'Майка', 'coast'=>'$25', 'color'=>'Black', 'size'=>'M'),
 array('product'=>'Шляпа', 'coast'=>'$12', 'color'=>'Gray', 'size'=>'Universal'),
 array('product'=>'Платье', 'coast'=>'$130', 'color'=>'White', 'size'=>'L'),
);

В чём различие? По сути это массивы внутри массивов. Соответственно что бы вызвать какое либо из значений вам лишь нужно сделать более блинный запрос к конкретной ячейке массива, например, что бы отобразить имя продукта первой строки используем такой код:

echo $cart[0]['product'];

Для вызова цены вызывем её по имени ячейки:

echo $cart2[0]['coast'];

Что бы вывести мия и цену первой позиции в массиве используем такую конструкцию:

echo $cart2[0]['product'] . $cart2[0]['coast'];

Что бы проделать подобный трюк с второй позицией из массива нужно просто сменить [0] на [1] и всё прочее сделать по аналогии с кодом выше.

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

foreach($cart2 as $key => $value) {
	 echo $value['product'], ' ', $value['coast'], ' ', $value['color'], ' ', $value['size'], ' ';
}

Обратите внимание я добавил в код пробелы между значениями таким вот кодом — , ' ' и в конце каждой строки перенос — , '
'
Обратите внимание на запятые, они обязательны для разделения значений.

Теперь давайте немного усложним пример, вместо [0] [1] [2], будем использовать наше имя продукта:

$cart['products']=array(
	'Майка'=>array('coast'=>'$100', 'color'=>'Black', 'size'=>'M'),
	'Шляпа'=>array('coast'=>'$100', 'color'=>'Gray', 'size'=>'Universal'),
	'Платье'=>array('coast'=>'$100', 'color'=>'White', 'size'=>'L'),
);

Ну и что бы вывести отдельное значение мудем вызывать его по нашему имени продукта:

echo $cart['products']['Майка']['coast'];

Для вывода всего массива используем вот такую конструкцию:

foreach ($cart['products'] as $key => $value) {
 echo $key. " | ";
 echo $value['coast']. " | ";
 echo $value['color']. " | ";
 echo $value['size']. "<br/>";
}