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
Форумы портала PHP.SU :: Версия для печати :: Раздел " Уроки PHP (по материалам форума PHP.SU)" [3]
Форумы портала PHP.SU » » Вопросы новичков » Раздел " Уроки PHP (по материалам форума PHP.SU)"

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

31. Bio man - 01 Мая, 2012 - 23:13:15 - перейти к сообщению
Lovelass пишет:
блин ну насколько я тупой но тупее думал нету
Правильно думал.
Lovelass это ты учишь как делать надо или так написал от нечего делать? Нельзя научить тому, чего сам не знаешь.
32. Mefistofel - 02 Мая, 2012 - 06:56:44 - перейти к сообщению
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. ?>
33. Okula - 02 Мая, 2012 - 07:25:13 - перейти к сообщению
Mefistofel пишет:
о как быть с "быстрым способом"?

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

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

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

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

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

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


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

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


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

Спасибо за разъяснение.
35. armancho7777777 - 02 Мая, 2012 - 07:49:36 - перейти к сообщению
Okula пишет:
Никак.

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

PHP:
скопировать код в буфер обмена
  1.  
  2. $result = ($sName == 'Медведев') ? 'пока еще президент' : (
  3.              ($sName == 'Путин') ? 'Президент все-еще Дмитрий Анатоьевич Медведев' : (
  4.           ($sName == 'Владимир') ? 'Он еще инаугурацию не прошел' : 'Ему вообще не светит стать президентом'));
  5.  
36. Mefistofel - 02 Мая, 2012 - 08:15:42 - перейти к сообщению
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, спасибо за дополнение - все становится светлее и прозрачнее))
37. armancho7777777 - 02 Мая, 2012 - 08:28:10 - перейти к сообщению
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 пишет:
А что произойдет все-таки в том варианте, что я написал, не взяв в скобки первое значение переменной?:


Всё так же и сработает, но читабельность кода не в лучшую сторону.
38. Mefistofel - 02 Мая, 2012 - 08:42:22 - перейти к сообщению
armancho7777777 пишет:
Можно сразу вывести, без присваивания:

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

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

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

Существуют ли в свободном доступе коды полей ввода или что-то подобное, чтобы я мог проверять все, что пишу на работоспособность? Например, код HTML + PHP, который выдаст одно окно с полем для ввода данных, куда бы я мог вбивать значения и смотреть результаты?
(Добавление)
Сам написать пока еще не в состоянии, но пользоваться уже хочется для обучения.
(Добавление)
Сам написать пока еще не в состоянии, но пользоваться уже хочется для обучения.
39. armancho7777777 - 02 Мая, 2012 - 08:45:41 - перейти к сообщению
Зачем?
У Вас не стоит локальный сервер?
PHP интерпретатор и так выдаст все ошибки, которые Вы допустите.
40. Mefistofel - 02 Мая, 2012 - 08:47:04 - перейти к сообщению
armancho7777777 пишет:
У Вас не стоит локальный сервер?


Дэнвер...

Я ошибки читать пока не умею... Ну, не все.
41. armancho7777777 - 02 Мая, 2012 - 08:47:55 - перейти к сообщению
Mefistofel пишет:
Меня радует, что работает) А вот над красивостью пока еще сложно работать, но буду стараться.

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

Ну и вот.
Создайте пустой php файл (страницу) и тестируйте код.
42. Mefistofel - 02 Мая, 2012 - 08:51:30 - перейти к сообщению
если даже взять к примеру последний код с президентами...
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
43. armancho7777777 - 02 Мая, 2012 - 08:53:44 - перейти к сообщению
)) Да Вы в начале этого кода присвойте переменной значение, которое хотите проверить, да й всё))

А внизу выведите:
PHP:
скопировать код в буфер обмена
  1. echo $result;

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


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

 

Powered by ExBB FM 1.0 RC1