Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Раздел " Уроки PHP (по материалам форума PHP.SU)" [3]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (12): « 1 2 [3] 4 5 6 7 8 9 ... » В конец    

> Описание: Конкретные вопросы по урокам, в которых возникли сложности или недопонимание.
Bio man
Отправлено: 01 Мая, 2012 - 23:13:15
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Lovelass пишет:
блин ну насколько я тупой но тупее думал нету
Правильно думал.
Lovelass это ты учишь как делать надо или так написал от нечего делать? Нельзя научить тому, чего сам не знаешь.
 
 Top
Mefistofel
Отправлено: 02 Мая, 2012 - 06:56:44
Post Id



Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Апр. 2012  
Откуда: Россия


Помог: 0 раз(а)




LIME пишет:
уясни хоть так сначала

Вроде как уяснил=) Написал несколько примеров с разными числовыми значениями - теперь все понятно, спасибо.
________________________________ _____________

Следующий вопрос.
При помощи опреатора IF я определяю значение false или true.
Если я задаю несколько вариантов для обработки данных оператором elseif, то функция становится намного шире - появляется возможность обрабатывать больше данных и выдавать больше результатов - это ясно. Но как быть с "быстрым способом"?

Как указано в примере урока, определить правду и ложь можно так:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $sName="Кто интересен в роли президента?";
  3. $result=$sName=="Медведев"?"пока еще президент":"Президент все-еще Дмитрий Анатоьевич Медведев";
  4. ?>


А как мне записать в этом способе еще одного оператора elseif?

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. if($sName=="Медведев")
  4. {
  5.    echo("пока еще президент");
  6. }
  7. elseif($sName=="Путин");
  8. {
  9.    echo("Президент все-еще Дмитрий Анатоьевич Медведев");
  10. }
  11. elseif($sName=="Владимир");
  12. {
  13.    echo("Он еще инаугурацию не прошел ");
  14. }
  15. else
  16. {
  17.    echo("Ему вообще не светит стать президентом");
  18. }
  19. ?>


Второй строкой? Что-то вроде этого?

PHP:
скопировать код в буфер обмена
  1.  
  2. $sName="Кто интересен в роли президента?";
  3. $result=$sName=="Медведев"?"пока еще президент":"Ему вообще не светит стать президентом";
  4. $result=$sName=="Путин"?"Президент все-еще Дмитрий Анатоьевич Медведев":"Ему вообще не светит стать президентом";
  5. $result=$sName=="Владимир"?"Он еще инаугурацию не прошел":"Ему вообще не светит стать президентом";
  6. ?>

Как мне в "быстрый" вариант добавить обработку переменных "Путин" и "Владимир"?
(Добавление)
Или так?
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $sName="Кто интересен в роли президента?";
  3. $result=$sName=="Медведев"?"пока еще президент":($sName=="Путин"?"Президент все-еще Дмитрий Анатоьевич Медведев":($sName=="Владимир"?"Он еще инаугурацию не прошел":"Ему вообще не светит стать президентом"));
  4. ?>

(Отредактировано автором: 02 Мая, 2012 - 07:02:22)



-----
Чем короче и понятней код, тем ты нужнее народу
 
 Top
Okula
Отправлено: 02 Мая, 2012 - 07:25:13
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




Mefistofel пишет:
о как быть с "быстрым способом"?

Это не быстрый способ, а тернврный оператор.
Mefistofel пишет:
А как мне записать в этом способе еще одного оператора elseif?

Никак. Конструкция if..elseif..else выполняется последовательно и если одно из условий выполняется то выполнение конструкция прервётся на том месте где выполнилось условие.

Использую тернарный оператор ты проверяешь выполнение всех условий и если выполнится какое-либо из вышестроящих выполнение остальных не прервётся и выполнится тоже.
Выполнение тернарного оператора эквивалентно конструкции if..else, но никак не if..elseif..else
Mefistofel пишет:
Как мне в "быстрый" вариант добавить обработку переменных "Путин" и "Владимир"?
(Добавление)
Или так?

Можно конечно пихать последующие условия в блок где невыполняется предыдущее, но это будет некрасива и плохо читаемо.
Лучше использовать конструкцию if..elseif..else
Не нужно зацикливаться на тернарном операторе.
 
 Top
Mefistofel
Отправлено: 02 Мая, 2012 - 07:34:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Апр. 2012  
Откуда: Россия


Помог: 0 раз(а)




Okula пишет:
Использую тернарный оператор ты проверяешь выполнение всех условий и если выполнится какое-либо из вышестроящих выполнение остальных не прервётся и выполнится тоже.

А есть ли команда, которая искусственно прерывает выполнение опреции, тапа "break"?

Okula пишет:
Выполнение тернарного оператора эквивалентно конструкции if..else, но никак не if..elseif..else


Ясно, значит только на 2 варианта - либо Медведев, либо иначе.

Okula пишет:
Не нужно зацикливаться на тернарном операторе.


Это просто урок =) Мне хочется попробовать все.

Спасибо за разъяснение.


-----
Чем короче и понятней код, тем ты нужнее народу
 
 Top
armancho7777777 Супермодератор
Отправлено: 02 Мая, 2012 - 07:49:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Okula пишет:
Никак.

Смелое утверждение))
Откуда такая уверенность?)
Если Вы не знаете как это сделать, - ещё не значит, что этого сделать невозможно)))
И не вводите людей в заблуждение.
Тернарные операторы: множественные условия))

PHP:
скопировать код в буфер обмена
  1.  
  2. $result = ($sName == 'Медведев') ? 'пока еще президент' : (
  3.              ($sName == 'Путин') ? 'Президент все-еще Дмитрий Анатоьевич Медведев' : (
  4.           ($sName == 'Владимир') ? 'Он еще инаугурацию не прошел' : 'Ему вообще не светит стать президентом'));
  5.  

(Отредактировано автором: 02 Мая, 2012 - 07:55:53)

 
 Top
Mefistofel
Отправлено: 02 Мая, 2012 - 08:15:42
Post Id



Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Апр. 2012  
Откуда: Россия


Помог: 0 раз(а)




armancho7777777 пишет:
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $result = ($sName == 'Медведев') ? 'пока еще президент' : (
  4.  
  5.              ($sName == 'Путин') ? 'Президент все-еще Дмитрий Анатоьевич Медведев' : (
  6.  
  7.           ($sName == 'Владимир') ? 'Он еще инаугурацию не прошел' : 'Ему вообще не светит стать президентом'));
  8.  
  9.  





Получается что переменная $result читает построчно все варианты значений в скобках (чисто гипотетически, в скобках значения под опреатором if) и возвращает значение в зависимости оттого, соответствует введеный параметр одному из значений переменной $sName или нет... Так?

А что произойдет все-таки в том варианте, что я написал, не взяв в скобки первое значение переменной?:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $sName="Кто интересен в роли президента?";
  4.  
  5. $result=$sName=="Медведев"?"пока еще президент":($sName=="Путин"?"Президент все-еще Дмитрий Анатоьевич Медведев":($sName=="Владимир"?"Он еще инаугурацию не прошел":"Ему вообще не светит стать президентом"));
  6.  
  7. ?>

(Добавление)
armancho7777777, спасибо за дополнение - все становится светлее и прозрачнее))

(Отредактировано автором: 02 Мая, 2012 - 08:19:35)



-----
Чем короче и понятней код, тем ты нужнее народу
 
 Top
armancho7777777 Супермодератор
Отправлено: 02 Мая, 2012 - 08:28:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Mefistofel пишет:
Получается что переменная $result читает построчно все варианты значений в скобках ....

Переменной $result присваивается значение в зависимости от условия.
Аналог с if/else:
PHP:
скопировать код в буфер обмена
  1.  
  2. $result = '';
  3.  
  4. if($sName == 'Медведев')
  5. {
  6.         $result = 'пока еще президент';
  7. }
  8. else if($sName == 'Путин')
  9. {
  10.         $result = 'Президент все-еще Дмитрий Анатоьевич Медведев';
  11. }
  12. else if($sName == 'Владимир')
  13. {
  14.         $result = 'Он еще инаугурацию не прошел';
  15. }
  16. else
  17. {
  18.         $result = 'Ему вообще не светит стать президентом';
  19. }
  20.  


Можно сразу вывести, без присваивания:

PHP:
скопировать код в буфер обмена
  1.  
  2. echo ($sName == 'Медведев') ? 'пока еще президент' : (
  3.         ($sName == 'Путин') ? 'Президент все-еще Дмитрий Анатоьевич Медведев' : (
  4.      ($sName == 'Владимир') ? 'Он еще инаугурацию не прошел' : 'Ему вообще не светит стать президентом'));
  5.  
  6.  
  7.  


Mefistofel пишет:
А что произойдет все-таки в том варианте, что я написал, не взяв в скобки первое значение переменной?:


Всё так же и сработает, но читабельность кода не в лучшую сторону.
 
 Top
Mefistofel
Отправлено: 02 Мая, 2012 - 08:42:22
Post Id



Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Апр. 2012  
Откуда: Россия


Помог: 0 раз(а)




armancho7777777 пишет:
Можно сразу вывести, без присваивания:

Просто предельно ясо теперь. Ура.

armancho7777777 пишет:
Всё так же и сработает, но читабельность кода не в лучшую сторону.

Меня радует, что работает) А вот над красивостью пока еще сложно работать, но буду стараться.

Существуют ли в свободном доступе коды полей ввода или что-то подобное, чтобы я мог проверять все, что пишу на работоспособность? Например, код HTML + PHP, который выдаст одно окно с полем для ввода данных, куда бы я мог вбивать значения и смотреть результаты?
(Добавление)
Сам написать пока еще не в состоянии, но пользоваться уже хочется для обучения.
(Добавление)
Сам написать пока еще не в состоянии, но пользоваться уже хочется для обучения.


-----
Чем короче и понятней код, тем ты нужнее народу
 
 Top
armancho7777777 Супермодератор
Отправлено: 02 Мая, 2012 - 08:45:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Зачем?
У Вас не стоит локальный сервер?
PHP интерпретатор и так выдаст все ошибки, которые Вы допустите.
 
 Top
Mefistofel
Отправлено: 02 Мая, 2012 - 08:47:04
Post Id



Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Апр. 2012  
Откуда: Россия


Помог: 0 раз(а)




armancho7777777 пишет:
У Вас не стоит локальный сервер?


Дэнвер...

Я ошибки читать пока не умею... Ну, не все.


-----
Чем короче и понятней код, тем ты нужнее народу
 
 Top
armancho7777777 Супермодератор
Отправлено: 02 Мая, 2012 - 08:47:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Mefistofel пишет:
Меня радует, что работает) А вот над красивостью пока еще сложно работать, но буду стараться.

Это должно быть нужно в первую очередь Вам.
Что бы через пол года Вы могли открыть код и прочесть его не запутавшись в нём.
(Добавление)
Mefistofel пишет:
Дэнвер...

Ну и вот.
Создайте пустой php файл (страницу) и тестируйте код.
 
 Top
Mefistofel
Отправлено: 02 Мая, 2012 - 08:51:30
Post Id



Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Апр. 2012  
Откуда: Россия


Помог: 0 раз(а)




если даже взять к примеру последний код с президентами...
PHP:
скопировать код в буфер обмена
  1. $result = '';
  2.  
  3.  
  4.  
  5. if($sName == 'Медведев')
  6.  
  7. {
  8.  
  9.         $result = 'пока еще президент';
  10.  
  11. }
  12.  
  13. else if($sName == 'Путин')
  14.  
  15. {
  16.  
  17.         $result = 'Президент все-еще Дмитрий Анатоьевич Медведев';
  18.  
  19. }
  20.  
  21. else if($sName == 'Владимир')
  22.  
  23. {
  24.  
  25.         $result = 'Он еще инаугурацию не прошел';
  26.  
  27. }
  28.  
  29. else
  30.  
  31. {
  32.  
  33.         $result = 'Ему вообще не светит стать президентом';
  34.  
  35. }


Мне бы поле, куда я как пользователь мог ввести "Путин", например и увидеть сообщение... То есть возврат значения переменной $result


-----
Чем короче и понятней код, тем ты нужнее народу
 
 Top
armancho7777777 Супермодератор
Отправлено: 02 Мая, 2012 - 08:53:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




)) Да Вы в начале этого кода присвойте переменной значение, которое хотите проверить, да й всё))

А внизу выведите:

Пример:
PHP:
скопировать код в буфер обмена
  1. $sName = 'Путин';
  2.  
  3. $result = ($sName == 'Медведев') ? 'пока еще президент' : (
  4.              ($sName == 'Путин') ? 'Президент все-еще Дмитрий Анатоьевич Медведев' : (
  5.           ($sName == 'Владимир') ? 'Он еще инаугурацию не прошел' : 'Ему вообще не светит стать президентом'));
  6.  
  7. echo $result;
  8.  

(Отредактировано автором: 02 Мая, 2012 - 08:57:04)

 
 Top
Mefistofel
Отправлено: 02 Мая, 2012 - 08:58:33
Post Id



Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Апр. 2012  
Откуда: Россия


Помог: 0 раз(а)




armancho7777777 пишет:
)) Да Вы в начале этого кода присвойте значение переменной, да й всё))


Да, конечно, но в этом сучае просто пропадает весь кайф написания кода - если я введу одно значение - я точно буду знать, какой результат получу.... Он рядом в исходном коде будет мною же и прописан)) Хочется наблюдать, как это происходит со стороны пользователя - создать ножество переменных и огромную укучу условий ... Потом просто проверять. Я вот на этом сайте скачал антимат... Что за иероглифы я там увидел - не понять вообще... Должен был получиться php код, но я кракозябру увидел (неизвестного происхождения)... Вот и написал бы простейшую программу по принципа антимата... подмена значений, условия разные... Вобщем, чтобы видеть все наглядно...Вот как-то так!)


-----
Чем короче и понятней код, тем ты нужнее народу
 
 Top
armancho7777777 Супермодератор
Отправлено: 02 Мая, 2012 - 09:02:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Mefistofel пишет:
просто пропадает весь кайф написания кода
Глазки в кучку
Учите язык.
 
 Top
Страниц (12): « 1 2 [3] 4 5 6 7 8 9 ... » В конец
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB