За последние 24 часа нас посетили 87546 программистов и 5445 роботов. Сейчас ищут 1674 программиста ...

return в операторе if

Тема в разделе "PHP для новичков", создана пользователем opaopaphp, 18 янв 2017.

Метки:
  1. opaopaphp

    opaopaphp Новичок

    С нами с:
    18 янв 2017
    Сообщения:
    4
    Симпатии:
    0
    Самоучуся. Понятно, что return возвращает чтото туда, откуда запущено. Если return запущен в функции, то в неё и возвращает, но есть некоторые непонятки. Есть 2 примера:
    1)
    PHP:
    1. $name = 'Вася';
    2. if(!$name == 'Васян'){
    3.     return false;
    4. }else
    5.     echo'Привет, Васян!<br>';
    6. echo $name;
    Тут если значение переменной $name не совпадает с 'Васян'(а оно не совпадает), то как результат сравнения должно вернуться false(куда вернуться, мне не очень понятно. Возможно изза этого и вопрос). Условие else не должно обрабатываться. то есть должно вывестись 'Вася'. А выводится "Привет, Васян" и "Вася". Что-то я недопонял. Прошу растолковать по простому - простонародному)

    2) if(!is_file(text.php))
    return false;

    Тута false куда возвращается и что вытворяет?

    Прошу за тупые вопросы - новичок я не самый умный, прошу в меня морковкой не тыкать)
     
    #1 opaopaphp, 18 янв 2017
    Последнее редактирование модератором: 18 янв 2017
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.213
    Симпатии:
    1.711
    Адрес:
    Молдова, г.Кишинёв
    вне функции и метода так делать нет смысла
     
    opaopaphp нравится это.
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.843
    Симпатии:
    1.338
    Адрес:
    Лень
    PHP:
    1. echo ( $name == 'Васян' ? 'Привет, Васян!<br>' : '' ) . $name;
     
  4. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.294
    Симпатии:
    216
    Адрес:
    Default city
    PHP:
    1. functiob check_vasya_name($name){
    2.     return $name == 'Васян';
    3. }
    4.  
    5. $name_to_check = 'Вся';
    6.  
    7. if(check_vasya_name($name_to_check)){
    8.     print 'Привет Васян';
    9. }else{
    10.     print 'Привет '.$name_to_check.', но ты не Васян, пошёл на';
    11. }
     
    opaopaphp нравится это.
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    мал ещё просить! Пока ты можешь только выбрать, куда именно тебе тыкать.

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

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

    поэтому твой пример должен выглядеть вот так:

    PHP:
    1. echo hello('Васян');
    2.  
    3. function hello($name) {
    4.   if ($name == 'Васян') {
    5.     return 'Привет, ' . $name . '! Чо как, чувак?!';
    6.   } else {
    7.     return 'Привет, ' . $name. ', давай знакомиться!';
    8.   }
    9. }
    ретурн делают тогда, когда надо. Даже в файле можно написать ретурн и иногда так делают, если очень нужно. Я например делаю регулярно.
     
    opaopaphp нравится это.
  6. opaopaphp

    opaopaphp Новичок

    С нами с:
    18 янв 2017
    Сообщения:
    4
    Симпатии:
    0
    Но всё же - такой код как должен сработать? Интересует не с точки зрения целесообразности, а для лучшего понимания механизма return. Я не очень понимаю, в каких случая и куда он возвращает. С функцией понятно, но на наиболее простых примерах
     
  7. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.213
    Симпатии:
    1.711
    Адрес:
    Молдова, г.Кишинёв
    Что значит сработать? запусти и посмотри. В итоге ты получишь холостой вызов (return), который ничего не сделает.

    Как писали выше, есть вариант использовать return как бы вне функции и метода, например

    запускать будем index.php
    PHP:
    1. $list = include('1.php');
    2. var_dump($list);
    1.php
    PHP:
    1. return array('one', 'two');
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    PHP спроектирован так, что он будет работать, даже если ты будешь писать жопой во сне. Это не аргумент и не цель. =)
    Но по-началу - да. Делай так, чтобы он хотя бы работал. Это хорошо. Лучше, чем, если не работает.
     
    denis01 и opaopaphp нравится это.
  9. opaopaphp

    opaopaphp Новичок

    С нами с:
    18 янв 2017
    Сообщения:
    4
    Симпатии:
    0
    Всем спасибо! Не буду вас больше беспокоить по return - у. То, что вы мне показали - внесло свою ясность. Чую, что нужно в мануалах поглубже покапаться с этим вопросом.
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    чувак, ну ты нас не беспокоишь, ты радуешь. Посмотри, у меня почти 28 тысяч сообщений. Я только и ищу повода, чтобы что-то написать.
     
    denis01, SamyRed и opaopaphp нравится это.
  11. opaopaphp

    opaopaphp Новичок

    С нами с:
    18 янв 2017
    Сообщения:
    4
    Симпатии:
    0
    Оу, спасибо))Буду иметь ввиду и когда совсем глупые вопросы сам закрою, потом что-нить спрошу еще, но в другой теме))Спасибо еще раз!
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    да не за что, задавай любые вопросы ;)
    28 тыщ, я иду к вам!
     
    SamyRed нравится это.