Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: непонятки с if elseif
 
 автор: RV   (21.03.2005 в 09:02)   письмо автору
 
 

Дано:
$permission[1] = '1' ; $permission[2] = '1' ; $permission[3] = '1'



<?
if ($permission[1] === '1')
{
$htm "add"
}
if (
$permission[2] === '1')
{
$htm "edit_author_news"
}
if (
$permission[3] === '1')
{
$tpl "edit_noauthor_news"
}
else die (
'Нет доступа');

include 
'html/news.html';
?>

news.html

<?
if ($htm === 'add')
{
echo 
"Можно добавлять";
}
elseif (
$htm === 'edit_author_news')
{
echo 
"Можно редактировать только свое
elseif (
$tpl === 'edit_noauthor_news')
{
echo "
можно редактировать только чужое";
}
?>


По моей идее должно выводится все три echo надписи. однако выводится только одна (первая). как вывести все надписи, которые удовлетворяют условию $permission[х] ? т.е. если к примеру $permission[1] = 1 , [2] = 0 а [3] = 1 скрипт соответсвенно выводит : "Можно добавлятьможно редактировать только чужое"

   
 
 автор: cheops   (21.03.2005 в 09:42)   письмо автору
 
   для: RV   (21.03.2005 в 09:02)
 

У вас после того как отрабатывает первый if в первом блоке кода $htm прнинимает значение "add", но уже во втором блоке, его значение переписывается на "edit_author_news", поэтому условие $htm === 'add' ложно, а срабатывает $htm === 'edit_author_news', так как далее у вас стоит elseif, вместо if - третье условие тоже не срабатывает.

   
 
 автор: cernos   (21.03.2005 в 10:09)   письмо автору
 
   для: RV   (21.03.2005 в 09:02)
 

1.
if ($htm === 'add')
разве не должно быть так
if ($htm == 'add')
2. elseif()
пишуться раздельно
else if()
Т.е. используйте только два равно и ставьте пробел между else и if.
Именно поэтому у вас срабатывает во всех случаях только первый if

   
 
 автор: cheops   (21.03.2005 в 10:12)   письмо автору
 
   для: cernos   (21.03.2005 в 10:09)
 

На самом деле всё это допустимо
1. === - это эквивалентность, а == - равенство
2. допускаются оба варианта написания и ifelse и if else

   
 
 автор: cernos   (21.03.2005 в 10:22)   письмо автору
 
   для: cheops   (21.03.2005 в 10:12)
 

Хм...
Возможно оно и так,
просто я с таким встречаюсь в 1 раз!
Sorry....

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования