Основы синтаксиса PHP

RAIDER

Guest
Ну, блин, что здесь не так??!!!

PHP:
 1: <?
 2: $i = 10;
 3: $j = 11;
 4: if ($i > $j) {
 5: echo '$i больше, чем $j';
 6: else if ($i < $j) {
 7: echo '$i меньше, чем $j';
 8: } else {       // ничего, кроме равенства, не остается :)
 9: echo '$i равно $j';
10: }
11: ?>
Ну скажите мне ну какое здесь может быть в выделенной красным строке: parse errror?????!!!! :mad:

-~{}~ 28.12.04 17:50:

Ой простите, не доисправлял...в шестой строке parse error
 

virakochi

Устал
Синтаксис нетяжело выучить
Хинт: Где закрывающая скобка для первого if?
 

Фанат

oncle terrible
Команда форума
внутри фигурных скобок у тебя конструкция:
5: echo '$i больше, чем $j';
6: else if ($i < $j) {
7: echo '$i меньше, чем $j';

какой в ней смысл? что здесь делает else без ифа перед ней?
 

Agatov

Новичок
Насколько я помню основы php,
интерпретатор не воспринимает переменные
если они стоят в одинарных кабычках
т.е. если ты пишешь
echo'$i'; то в браузер так и выведется $i

Поставь переменные в двойные кабычки т.е.
echo"$i";

На мой взгляб код должен выглядеть так:


1: <?
2: $i = 10;
3: $j = 11;
4: if ($i > $j) {
5: echo "$i больше, чем $j";}
6: else if ($i < $j) {
7: echo "$i меньше, чем $j";
8: } else { // ничего, кроме равенства, не остается <img src="images/smilies/smile.gif" border="0" alt="">
9: echo "$i равно $j";
10: }
11: ?>
 

RAIDER

Guest
Agatov, дело в том что переменные сдесь и не должжны выводиться...просто сдесь выполняеться условие и взависимости от того ложно оно или истинно, должна выводить определненная строка в таком виде как она написана...и то что у меня в одинарных квычках должо выводиться в таком же виде..

-~{}~ 28.12.04 19:11:

Фанат, здесь просто одно условие вложено в другое...и как ты говоришь...то здесь в этом листинге равное количество if и else, и тут везде есть иф перед элсе, но почему мне броузер выдает parse error, в шестой строке я не могу понять по синтаксису тут все верно!!!
 

RAIDER

Guest
Ведь идет иф потом условие потом выражение которое выполняется в случае елси условие истинно, потом идет элсе - если условие ложно, и в это элсе вложено ещеодно уловие и иф и элсе, что может быть не правильно???

-~{}~ 28.12.04 19:16:

нет не ясен, объясни поподробней....
 

Фанат

oncle terrible
Команда форума
потом выражение которое выполняется в случае елси условие истинно, потом идет элсе
вот здесь у тебя ошибка.
"элсе" у тебя не "потом", а внутри выражения
у тебя написано
if () {
else
}

Если тебе трудно понять такие веши - ПРОСТО ПОСЧИТАЙ СКОБКИ.
их должно быть равное колипчество. открывающих и закрывающих.
 

RAIDER

Guest
хорошо, они нужны для того чтобы можно было выполнить нескольнко выражений после иф или после елсе, ведь так?
 

Фанат

oncle terrible
Команда форума
Давай ты прочтешь в документации - зачем они нужны?
 

RAIDER

Guest
по большому счету должно работать без фигурных скобок..но не работает..
 

SiMM

Новичок
RAIDER, по большому счёту - хватит нести бред. Иди и читай ман по [m]if[/m] и делай по аналогии, если понятие "операторные скобки" тебе неизвестно и непонятно.
 

Фанат

oncle terrible
Команда форума
по большому счету - не должно.
к какому ифу пхп должен отнести последний else? к первому или ко второму?
 

RAIDER

Guest
{} - квантификатор, означающий одно или более вхождений
Хорошо вот пример из руководства по ПХП 3

<?php
if ($a > $b) {
echo "a is bigger than b";
} elseif ($a == $b) {
echo "a is equal to b";
} else {
echo "a is smaller than b";
}
?>

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

<?
$i = 10;
$j = 11;
if ($i > $j) {
echo '$i больше, чем $j';
} else if ($i < $j) {
echo '$i меньше, чем $j';
} else {
echo '$i равно $j';
}
?>

-~{}~ 28.12.04 19:46:

ко второму конечно же
 

RAIDER

Guest
SiMM, я понимаю что тв не новичок но вот такого термина: операторные скобки, нет в руководстве, так чтоне знаю бред это или нет... давай тогда точную информацию...

-~{}~ 28.12.04 19:49:

Фанат, ну если ты видешь, то у меня идет: иф .. елсе ... иф ... елсе
 

SiMM

Новичок
Автор оригинала: RAIDER
такого термина: операторные скобки, нет в руководстве
Потому что это уровень выпускника средней школы, где преподавали информатику и изучали хотя бы паскаль (или си). Объясняю. Как выглядит конструкция if?
if (условие) действие1;
else действие2;
Если одно из действий состоит из более чем одной инструкции, его необходимо обрамить операторными скобками, в PHP это фигурные скобки. Т.е. в общем виде конструкция выглядит так:
if (условие) {
набор_инструкций_1
}
else {
набор_инструкций_2
}
Ещё вопросы?
 
Сверху