За последние 24 часа нас посетили 32823 программиста и 1821 робот. Сейчас ищут 1428 программистов ...

Функция и параметры

Тема в разделе "PHP для новичков", создана пользователем amf1k, 22 апр 2015.

  1. amf1k

    amf1k Активный пользователь

    С нами с:
    20 авг 2014
    Сообщения:
    86
    Симпатии:
    0
    Есть 2 страницы: например - kino.php и actor.php
    Есть БД, в ней 2 таблицы - фильмы и актеры
    Есть функция вывода информации с БД
    Код (PHP):
    1. function getInfo($kino, $actor){
    2.     //Если 1-й параметр равен NULL
    3.     if(empty($kino)){
    4.         //Делаем запрос на выборку всех актеров
    5.         $query = 'SELECT * FROM `actor`';
    6.     }
    7.     //Если 2-й параметр равен NULL
    8.     else{
    9.         //Делаем запрос на выборку всех фильмов
    10.         $query = 'SELECT * FROM `kino`';
    11.     }
    12.     $result = mysql_query($query);
    13.     $array = array();
    14.     while($row = mysql_fetch_assoc($result)){
    15.         $array[] = $row;
    16.     }
    17.     //Возвращаем массив актеров, или массив фильмов
    18.     return $array;
    19. }
    Если страница kino.php, то выводим информацию по фильмах
    Код (PHP):
    1. print_r(function getInfo('kino', NULL));
    Если страница actor.php, то выводим информацию по актерах
    Код (PHP):
    1. print_r(function getInfo(NULL,'actor'));
    Вопрос: Можно ли так применять параметры к функции (NULL), если нет, то почему???
    Если честно, то код работает, но что то мне подсказывает, что этот код не имеет права на жизнь?
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    всё так и интуиция правильно подсказывает :)
    применять можно, но это не корректно...
    можно же передать разные аргументы 'kino' и 'actor' в один и тот же запрос ;)
     
  3. amf1k

    amf1k Активный пользователь

    С нами с:
    20 авг 2014
    Сообщения:
    86
    Симпатии:
    0
    это будет одно и тоже, если я правильно вас понял!
     
  4. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    абсолютно верно :)
     
  5. amf1k

    amf1k Активный пользователь

    С нами с:
    20 авг 2014
    Сообщения:
    86
    Симпатии:
    0
    спасибо за ответы)
    2-й вопрос:
    Код (PHP):
    1. //Простоя функция для проверки: существуeт ли $var
    2. function getResult($var){
    3.     //Если существует
    4.     if(isset($var)){
    5.         return true;
    6.     }
    7.     //Если нет
    8.     else{
    9.         return false;
    10.     }
    11. }
    12. //Проверка на странице, если не существует переменная $string
    13. if(getResult($string) == false){
    14.     echo 'Печалька:)';
    15. }
    16. //Если существует переменная $string
    17. else{
    18.     echo 'Все ок';
    19. } 
    вопрос: проверять функцию на существование переменной вместо false на null, это одно то же???
     
  6. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    разные типы данных - разные значения, бул - это всё так и логическое выражение ;)
     
  7. amf1k

    amf1k Активный пользователь

    С нами с:
    20 авг 2014
    Сообщения:
    86
    Симпатии:
    0
    3-й вопрос, и думаю последний)
    есть "ОДНА" функция вывода информации с БД, для примера - таблица (статьи), есть 3 страницы, мне нужно выводить статьи на каждой странице по разному, то есть сортировка разная при выборке, логично ли принимать в функцию параметр "сортировка", что бы знать на какой странице сортировать??? или это опять мой многоколесный велик?)
     
  8. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    в данном случае - сортировка уже другой параметр влияющий на результат, а не название таблицы, и это будет правильно ;)
     
  9. amf1k

    amf1k Активный пользователь

    С нами с:
    20 авг 2014
    Сообщения:
    86
    Симпатии:
    0
    ну спасибо тебе БОЛЬШОЕ) теперь душа моя спокойна) но все же, с возвратом, сравнением и применением false-true-null у меня большие проблемы(
     
  10. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    в сравнивании типов - это абс. правильная практика, для этого и разработаны многие функции в php. Но, одна и таже функция всегда должна возвращать один тип данных, будь то true или false, array, int.... и т.д. Такие мелочи уменьшают работу как миниму в 2 раза и не приходиться делать лишние проверки, на то какого типа вернула функция результат ;)
     
  11. amf1k

    amf1k Активный пользователь

    С нами с:
    20 авг 2014
    Сообщения:
    86
    Симпатии:
    0
    с этим у меня проблемы! мануал читал, но не могу понять суть этих false true null!
     
  12. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    чтобы понять, просто нужно разделять разницу между ними... Что true-false - это логическое выражение, null - это пустое значение( не путать с нулем ).... ;)
     
  13. amf1k

    amf1k Активный пользователь

    С нами с:
    20 авг 2014
    Сообщения:
    86
    Симпатии:
    0
    пустая строка всегда будет - null?
     
  14. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    про дебаж сам :)
    Код (Text):
    1.  
    2. $str = '';
    3. var_dump( is_null($str) );
    ;)
     
  15. amf1k

    amf1k Активный пользователь

    С нами с:
    20 авг 2014
    Сообщения:
    86
    Симпатии:
    0
    буду экспериментировать)