Управляющие операторы
Оператор условий if имеет несколько реализаций в PHP. Привычная для вас форма if:
if($city == "Odessa") { echo ("In Odessa");}
else{ echo ("In some city");}
И вторая форма , удобная в том случае, если Вам необходимо вставить HTML-код:
if($s == "guest") :
echo ("Be my guest!");
else if ($s == "admin"):
echo ("Hello to me");
endif;
И еще один пример для того, чтобы показать, как вставить HTML-код
<?
if($s == "guest") :
?>
<h1>Be my guest!");</h1>
<?
endif;
?>
Также можно использовать оператор switch, очень похожий на эквивалентный оператор в C.
$a=0;
switch($a) {
case 1: echo "a is 1"; break;
case "hello": echo "a is hello"; break;
default: echo "a is unknown"; break; }
И еще один пример, который показывает существенное отличие данного оператора в PHP от эквивалентного в С (можно использовать переменные):
$a = 7.8; $b = 7.2; $res = 7.8;
switch ($res) {
case $a: echo $res; break;
case $b: echo "wow"; break;
}
То же самое может быть получено с switch(); endswitch;. В PHP мы опять встречаем знакомый уже оператор while. Он также имеет два вида:
Привычный вам while() и while(): endwhile;
$a=0;
while($a <100) {
$a++;
echo $a;
}
либо
$a=0;
while($a <100):
$a++;
echo $a;
endwhile;
Также есть оператор do { } while(), использование которого нет нужды подробно объяснять. И последний оператор - for опять таки имеет две формы:
for($i = 0; $i < 10; $i++){ echo ($i); }
или
for($i = 10; $i > 0; $i--):
echo ($i);
endfor;
Преобразование типов данных
Существует несколько правил преобразования:
Если строка начинается с допустимого числового значения, то данная строка при выполнении над ней числовой операции будет преобразована в целое число, Если же строка не начинается с числа, то она будет преобразована в 0.
<?php
$str = "23SomeText";
$res = 5 + $str;
echo $res; //выведет 28
echo $str; //выведет 23SomeText, т.к. значение самой переменной не изменится
//при выполнении данной операции
?>
Строка переводится в число с плавающей точкой только в том случае, если число занимает всю строку (может занимать и не всю строку, просто считывать число будет до того как встретит символ). Если же в строке будут встречены какие-то буквенные символы, то строка преобразуется в целое число.
<?php
$str = "2.3";
$res = 5 + $str;
echo $res; //выведет 5.8
?>
Кроме того существует способ явного преобразования типов:
<?php
$a = 99.2;
$a = (int)$a; //=99
$b = (double)$a; //=99.2
$c = (string)$a; //="99.2"
?>
Функции
Чтобы определить функцию, Вам необходимо воспользоваться оператором function.
function имя_функции(параметры)
{ какой-либо код }
Кроме этого Вы можете возвращать значения из функции при помощи оператора return. Но его использование необязательно. return можно также использовать для прекращения работы функции.
function MyFunc ($param)
{ if($param == 0)
return;
echo ("The parameter is ".$param);
}
. . . .
$number = 91;
MyFunc($number);
По умолчанию в функцию аргументы передаются по значению, но их можно передавать и по ссылке, используя & перед именем параметра функции.
function Change (&$num1, &$num2)
{ $changer = $num1;
$num1 = $num2;
$num2 = $changer;
}
$number1 = 10;
$number2 = 25;
Change ($number1, $number2);
echo $number1; //выведет 25
echo $number2; //выведет 10
Мы можем устанавливать для параметров значение по умолчанию, но как и в С/С++ такие параметры необходимо помещать в конец.
function MyFunc($first, $second = 0)
{ $result = $first + $second;
return ($result);
}
$num = MyFunc(500);
В PHP функции можно вкладывать одну в другую. При этом любая функция, включая и вложенные функции, видна во всем коде, т.е. следующий код будет верен.
function FirstFunc ($param) {//возводит число во вторую степень
function SecondFunc($num){ //возводит число в третью степень
return ($num * $num * $num);
}
return ($param * $param);
}
$someNumber = 10;
echo (FirstFunc ($someNumber));
echo (SecondFunc (5));
