Kwert-soft.ru

IT Софт для ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Php функция if

Php функция if

Условные операторы являются, пожалуй, наиболее распространенными конструкциями во всех алгоритмических языках программирования. Рассмотрим основные условные операторы языка PHP.

Конструкция if

Синтаксис конструкции if аналогичен конструкции if в языке Си:

Согласно выражениям PHP, конструкция if содержит логическое выражение. Если логическое выражение истинно (true), то оператор, следующий за конструкцией if будет исполнен, а если логическое выражение ложно (false), то следующий за if оператор исполнен не будет. Приведем примеры:

if ( $a > $b ) echo «значение a больше, чем b» ;
?>

В следующем примере если переменная $a не равна нулю, будет выведена строка «значение a истинно (true)»:

if ( $a ) echo «значение a истинно (true) » ;
?>

В следующем примере если переменная $a равна нулю, будет выведена строка «значение a ложно (false)»:

if ( !$a ) echo «значение a ложно (false) » ;
?>

Часто вам будет необходим блок операторов, который будет выполняться при определенном условном критерии, тогда эти операторы необходимо поместить в фигурные скобки Пример:

if ( $a > $b ) <
echo «a больше b» ;
$b = $a ;
>
?>

Приведенный пример выведет сообщение, «a больше b», если $a > $b, а затем переменная $a будет приравнена к переменной $b. Заметим, что данные операторы выполняются в if.

Конструкция else

Часто возникает потребность исполнения операторов не только в теле конструкции if, если выполнено какое-либо условие конструкции if, но и в случае, если условие конструкции if не выполнено. В данной ситуации нельзя обойтись без конструкции else. В целом, такая конструкция будет называться конструкцией if-else.

Синтаксис конструкции if-else такой:

if (логическое_выражение)
инструкция_1;
else
инструкция_2;

Действие конструкции if-else следующее: если истинно, то выполняется
, а иначе — . Как и в любом другом языке, конструкция else может опускаться, в этом случае при получении должного значения просто ничего не делается.

Если или должны состоять из нескольких команд, то
они, как всегда, заключаются в фигурные скобки. Например:

if ( $a > $b ) <
echo «a больше, чем b» ;
> else <
echo «a НЕ больше, чем b» ;
>
?>

Конструкция if-else имеет еще один альтернативный синтаксис:

if (логическое_выражение):
команды;
elseif(другое_логическое_выражение):
другие_команды;
else:
иначе_команды;
endif

Обратите внимание на расположение двоеточия (:)! Если его пропустить, будет сгенерировано сообщение об ошибке. И еще: как обычно, блоки elseif и else можно опускать.

Конструкция elseif

elseif — это комбинация конструкций if и else. Эта конструкция расширяет условную конструкцию if-else.

Приведем синтаксис конструкции elseif:

if (логическое_выражение_1)
оператор_1;
elseif (логическое_выражение_2)
оператор_2;
else
оператор_3;

Практический пример использования конструкции elseif:

if ( $a > $b ) <
echo «a больше, чем b» ;
> elseif ( $a == $b ) <
echo «a равен b» ;
> else <
echo «a меньше, чем b» ;
>
?>

Вообще, конструкция elseif не очень удобна, поэтому применяется не так часто.

Php функция if

(PHP 4, PHP 5, PHP 7)

Конструкция if является одной из наиболее важных во многих языках программирования, в том числе и PHP. Она предоставляет возможность условного выполнения фрагментов кода. Структура if реализована в PHP по аналогии с языком C:

Как описано в разделе про выражения, выражение вычисляется в булево значение. Если выражение принимает значение TRUE , PHP выполнит инструкцию , а если оно принимает значение FALSE — проигнорирует. Информацию о том, какие значения считаются равными значению FALSE , можно найти в разделе ‘Преобразование в булев тип’.

Следующий пример выведет a больше b , если значение переменной $a больше, чем $b :

Часто необходимо, чтобы условно выполнялось более одной инструкции. Разумеется, для этого нет необходимости помещать каждую инструкцию в if. Вместо этого можно объединить несколько инструкций в блок. Например, следующий код выведет a больше b , если значение переменной $a больше, чем $b , а затем присвоит значение переменной $a переменной $b :

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

User Contributed Notes 20 notes

easy way to execute conditional html / javascript / css / other language code with php if else:

if ( condition ): ?>

html code to run if condition is true

else: ?>

html code to run if condition is false

Again useful for newbies:

if you need to compare a variable with a value, instead of doing

if ( 3 == $foo ) bar ();
?>

this way, if you forget a =, it will become

if ( 3 = $foo ) bar ();
?>

and PHP will report an error.

Any variables defined inside the if block will be available outside the block. Remember that the if doesn’t have its own scope.

= true ;
if ( $bool ) <
$hi = ‘Hello to all people!’ ;
>
echo $hi ;
?>

It will print ‘Hello to all people!’

On the other hand, this will have no output:

if ( false ) <
$hi = ‘Hello to all people!’ ;
>
echo $hi ;
?>

An other way for controls is the ternary operator (see Comparison Operators) that can be used as follows:

$r = ( 1 == $v ) ? ‘Yes’ : ‘No’ ; // $r is set to ‘Yes’
$r = ( 3 == $v ) ? ‘Yes’ : ‘No’ ; // $r is set to ‘No’

echo ( 1 == $v ) ? ‘Yes’ : ‘No’ ; // ‘Yes’ will be printed

Читать еще:  Php if echo

// and since PHP 5.3
$v = ‘My Value’ ;
$r = ( $v ) ?: ‘No Value’ ; // $r is set to ‘My Value’ because $v is evaluated to TRUE

$v = » ;
echo ( $v ) ?: ‘No Value’ ; // ‘No Value’ will be printed because $v is evaluated to FALSE
?>

Parentheses can be left out in all examples above.

You can have ‘nested’ if statements withing a single if statement, using additional parenthesis.
For example, instead of having:

if( $a == 1 || $a == 2 ) <
if( $b == 3 || $b == 4 ) <
if( $c == 5 || $ d == 6 ) <
//Do something here.
>
>
>
?>

You could just simply do this:

if( ( $a == 1 || $a == 2 ) && ( $b == 3 || $b == 4 ) && ( $c == 5 || $c == 6 ) ) <
//do that something here.
>
?>

Hope this helps!

In addition to the traditional syntax for if (condition) action;
I am fond of the ternary operator that does the same thing, but with fewer words and code to type:

(condition ? action_if_true: action_if_false;)

(x > y? ‘Passed the test’ : ‘Failed the test’)

It seems that only numbers can be compared between them but actually an alphabet can be compare too. For example :

// Number comparison
$a = «C» ;
$b = «X» ;
if ( $a $b )
<
echo $a . «is smaller than» . $b ;
>
// Result : C is smaller than X
?>

As an added note to the guy below, in such a case, use the !== operator like this.

$nkey = array_search($needle, $haystack);

The !== and the === compare the «types». So, with this type of comparision, 0 is not the same as the FALSE returned by the array_search array when it can not find a match. 🙂

if ($nkey = array_search($needle, $haystack)) < .

if the returned key is actually the key 0, then the if won’t be executed
===================================

This is aimed at PHP beginners but many of us do this Ocasionally.

When writing an if statement that compares two values, remember not to use a single = statement.

eg:
if ( $a = $b )
<
print( «something» );
>
?>
This will assign $a the value $b and output the statement.

To see if $a is exactly equal to $b (value not type) It should be:
if ( $a == $b )
<
print( «something» );
>
?>
Simple stuff but it can cause havok deep in classes/functions etc.

You can also check alphabet characters like this

// Alphabetical Comparison
$a = «brian» ;
$b = «zebra» ;
if ( $a $b ) <
echo $a . » is before » . $b . » in the alphabet» ;
>
else <
echo $a . » is after » . $b . » in the alphabet» ;
>
// Result : brian is before zebra in the alphabet
?>

When using if statements without the curly braces, remember than only one statement will be executed as part of that condition. If you want to place multiple statements you must use curly braces, and not just put them on the same line.

if ( 1 == 0 ) echo «Test 1.» ; echo «Test 2» ;

?>

Whereas some people would expect nothing to be displayed, this piece of code will show: «Test 2».

@henryk (and everybody):

You should put your arguments in order by *least* likely to be true. That way if php is going to be able to quit checking, it will happen sooner rather than later, and your script will run (what amounts to unnoticeably) faster.

At least, that makes the most sense to me, but I don’t claim omniscience.

This has got the better part of my last 2 hours, so I’m putting it here, maybe it will save someone some time.

if (function1() && function2())

statement. Before returning true or false, function1() and function2() had to output some text. The trick is that, if function1() returns false, function2() is not called at all. It seems I should have known that, but it slipped my mind.

Note that safe type checking (using === and !== instead of == and !=) is in general somewhat faster. When you’re using non-safe type checking and a conversion is really needed for checking, safe type checking is considerably faster.

===================================
Test (100,000,000 runs):
= microtime ( true );
for( $i = 0 ; $i 100000000 ; $i ++)
if( 5 == 10 ) <>
$end = microtime ( true );
echo «1: » .( $end — $start ). «
n» ;
unset( $start , $end );

$start = microtime ( true );
for( $i = 0 ; $i 100000000 ; $i ++)
if( ‘foobar’ == 10 ) <>
$end = microtime ( true );
echo «2: » .( $end — $start ). «
n» ;
unset( $start , $end );

$start = microtime ( true );
for( $i = 0 ; $i 100000000 ; $i ++)
if( 5 === 10 ) <>
$end = microtime ( true );
echo «3: » .( $end — $start ). «
n» ;
unset( $start , $end );

$start = microtime ( true );
for( $i = 0 ; $i 100000000 ; $i ++)
if( ‘foobar’ === 10 ) <>
$end = microtime ( true );
echo «4: » .( $end — $start ). «
n» ;
unset( $start , $end );
?>

Читать еще:  Условия в php if else

===================================
Result (depending on hardware configuration):
1: 16.779544115067
2: 21.305675029755
3: 16.345532178879
4: 15.991420030594

Урок 5. Условный оператор if, логические операции и сравнение в PHP

Условный оператор if в PHP

Главное в действие данное оператора — это условие. if в переводе с английского значит если. Условие принимается в качестве аргумента (то что в скобках). В качестве условия может выступать логическое выражение или логическая переменная. Если проще, то смысл выражения будет такой:

Надеюсь логика условной операции понятна. Теперь давайте рассмотрим пример.

Демонстрация Скачать исходники
В итоге скрипт выведет 25 больше 5. Пример довольно прост. Надеюсь всё понятно. Теперь предлагаю рассмотреть ситуацию сложнее, где нужно соблюсти несколько условий. Каждое новое условие будет содержать после основного условия if() — вспомогательное, которое записывается как else if(). В конце как обычно будет else.

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

Демонстрация Скачать исходники
Наш школьник, который успевает и отдохнуть, и написать нормально тест получает оценку 4! А принцип работы надеюсь понятен.

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

Вполне себе милый пример короткой записи условной операции. else писать не обязательно.

Дальше встаёт другой вопрос: а есть же, наверное, какие-либо другие операторы сравнения?

Операторы сравнения в PHP

Принцип работы условной операции понятен. Но, как Вы понимаете, способов сравнить намного больше. Давайте посмотрим ниже на таблицу с операторами сравнения.

Теперь рассмотрим операторы на примерах:

Логические операторы PHP

Бывают случаи, когда нужно сравнить не одну переменную, а сразу две и более в одном условии. Для этого существуют логические операторы.

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

Переходим к примерам

Тернарный оператор

К вопросу тернарного кода я предлагаю Вам вернуться позже. Вовсе не упомянуть его я не мог, так как это важная конструкция, которая существенно сокращает размер кода. Предлагаю сразу рассмотреть код.

Суть кода: (условие) ? значение a если true : значение a если false

Таким образом, мы сокращаем запись оператора if. Однако, данная операция действительна только с присваиванием значений переменной. Теперь давайте рассмотрим готовый пример.

Прочитайте комментарии к коду и всё должно быть понятно.

Условия в PHP

Всем привет! Вот и очередной урок по PHP подоспел. Сегодняшняя тема – одна из самых любимых у тех, кто начинает программировать. Ещё бы, ведь условия в PHP – это то, что позволяет нам составлять различные алгоритмы. Именно в зависимости от условий программа будет вести себя так или иначе. И именно благодаря им мы можем получать разный результат при разных входных данных. В PHP имеются несколько конструкций, с помощью которых можно реализовать условия. Все они используются, и имеют свои преимущества в разных ситуациях, или, если хотите – условиях. Кругом одни условия, не так ли? Так. Никто ведь не будет спорить, что в реальной жизни в зависимости от обстоятельств мы поступаем по-разному. В программировании это не менее важно и сейчас мы этому научимся.

Как вы должны помнить из прошлого урока, в PHP, в зависимости от оператора, операнды приводятся к определённому типу. Для операторов условий в PHP действуют те же правила, и здесь операнд всегда приводится к булевому значению. В случае, если это значение true, то считаем, что условие выполнено, а в случае, если false – то условие не выполнено. В зависимости от того, выполнено ли условие, мы можем делать или не делать какие-либо действия. И тут я предлагаю рассмотреть первый условный оператор – if.

Условный оператор if

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

А в реальной жизни использование оператора if выглядит следующим образом:

Здесь мы явно передали оператору значение true. Разумеется, это абсолютно бессмысленно. Давайте с помощью условия будем определять числа больше 10. Это довольно просто:

И после запуска мы увидим результат:

Конструкция if-else

А можно ли сделать так, чтобы, когда условие не выполнилось, выполнился другой код? Конечно можно! Для этого вместе с оператором if используют оператор else (по-русски — иначе). Он пишется после фигурных скобок, в которые заключается код, выполняющийся при выполненном условии. И выглядит конструкция следующим образом:

Здесь опять же на экран будет выведено сообщение:

Однако если мы изменим входные данные, и переменной $x в самом начале присвоим значение 8, то выведется сообщение:

Попробуйте сделать это прямо сейчас.

Конструкция if-elseif-else: несколько условий

В случае, если вам нужно проверить несколько условий, после оператора if добавляется ещё и оператор elseif. Он проверит условие, только если не выполнится первое условие. Например:

Читать еще:  Http flashboot ru index php

В данном случае, на экран будет выведено:

И да, после этого оператора можно добавить else. Код внутри него будет выполнен, если не выполнилось ни одно из условий:

Результат этого кода, я полагаю, объяснять не нужно. Да, кстати, возможен целый список из elseif-ов. Например, такой:

Приведение к boolean

Помните, в уроке про типы данных в PHP мы с вами научились явно приводить значения к какому-либо типу. Например:

Результатом будет true.
Работающее так же, только неявное преобразование, всегда происходит в условии. Например, следующее условие:

Выполнится успешно, так как число 3 будет преобразовано к true. К false будут приводиться следующие значения:

Таким образом, любое ненулевое число и ненулевая строка будут преобразованы в true и условие выполнится. Исключение – строка, состоящая из одного нуля:

Она также будет преобразована к false.

Я затронул эту тему с приведением к boolean в домашнем задании к этому уроку. Обязательно его выполните. А сейчас давайте перейдём к следующему условному оператору.

Оператор switch

Помимо конструкции if-else есть ещё один оператор условия. Это – switch. Это очень интересный оператор, требующий запоминания нескольких правил. Давайте для начала посмотрим, как он выглядит на следующем примере:

Сначала может показаться, что этот оператор довольно сложный. Однако, если разобраться, то всё становится понятно. В операнде switch указывается некоторое выражение. В нашем случае, это переменная $x, а точнее её значение — 1.

В фигурных скобках мы перечисляем операторы case, после которых указываем значение, с которым сравнивается значение операнда switch. Сравнение происходит нестрогое, то есть как будто используем оператор ==. И если условие выполнилось, то выполняется код, указанный после двоеточия. Если же ни одно из условий не выполнилось, то выполняется код из секции default, которой в общем-то может и не быть, и тогда ничего выполняться не будет. Обратите внимание, внутри каждой секции case, в конце мы прописали оператор break. Это делается для того, чтобы после выполнения кода в случае выполнения условия не продолжилась проверка условий. То есть, если бы не было break в конце секции case 1, то после того, как вывелся бы текст

продолжило бы выполняться условие сравнения с 2, а затем бы выполнился и код в секции default. Не забывайте писать break!

Сравнение switch с if

Вообще, этот код можно было бы записать и с помощью конструкции if-elseif-else:

Но в виде конструкции switch-case код в конкретно этом случае выглядит проще. И вот почему:

  1. мы сразу видим, что конкретно мы сравниваем (переменную $x) и понимаем, что сравниваем в каждом условии именно это значение, а не какое-либо ещё;
  2. глазу удобнее воспринимать то, с чем сравниваем – секции case 1, case 2 визуально воспринимаются легче, сравниваемое значение заметнее.

И снова про switch

И я ещё не всё сказал про switch — можно писать несколько case-ов подряд, тогда код выполнится при условии, что выполнен хотя бы один из них. Например:

Согласитесь, это может быть удобно.

Хорошо, давайте пройдёмся по особенностям оператора switch, о которых нужно помнить всегда.

  1. break прерывает набор условий, не забывайте указывать его;
  2. секция default будет выполнена, если не выполнилось ни одно из условий. Она может и вовсе отсутствовать;
  3. несколько case-ов могуть быть записаны подряд, тогда код в секции выполнится при выполнении хотя бы одного из условий.

Немного практики

Ну что, запомнили операторы условий? Давайте закрепим на практике более реальными примерами.

Чётное или нечётное

Вот один из примеров – нужно определить, чётное ли число или нет. Для этого нам нужно проверить, что остаток от деления на 2 будет равен . Подробнее об операторах читайте тут. Давайте сделаем это:

Попробуйте самостоятельно изменить значение переменной $x. Круто, да? Оно работает!

Модуль

Давайте теперь научимся вычислять модуль числа. Если число больше или равно нулю, то нужно вывести само это число, если меньше – заменить знак с минуса на плюс.

Как мы видим, всё успешно отработало.

Тернарный оператор

Помимо этого, в PHP есть ещё один оператор, который представляет собой сокращённую форму конструкции if-else. Это тернарный оператор. При этом он возвращает разные результаты, в зависимости от того, выполнено ли условие или нет. В общем виде его использование выглядит следующим образом:

Или на примере того же нахождения модуля:

Круто, да? Тернарный оператор – очень элегантно вписывается при решении таких вот простеньких задачек.

И ещё немного практики

Условия можно помещать внутрь друг друга и вообще, чего с ними только можно не делать. Например:

Друзья, надеюсь вам понравился урок. Если это так – буду рад, если вы поделитесь им в социальных сетях или расскажете друзьям. Это лучшая поддержка проекта. Спасибо тем, кто это делает. Если у вас возникли какие-то вопросы или замечания – напишите об этом в комментариях. А сейчас – все быстренько делаем домашнее задание, там ещё больше интересных примеров с условиями. Всем пока!

Ссылка на основную публикацию
Adblock
detector