powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Функция и параметры
7 сообщений из 7, страница 1 из 1
Функция и параметры
    #38942082
amf1k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть 2 страницы: например - kino.php и actor.php
Есть БД, в ней 2 таблицы - фильмы и актеры
Есть функция вывода информации с БД
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
function getInfo($kino, $actor){
    //Если 1-й параметр равен NULL
    if(empty($kino)){
        //Делаем запрос на выборку всех актеров
        $query = 'SELECT * FROM `actor`';
    }
    //Если 2-й параметр равен NULL
    else{
        //Делаем запрос на выборку всех фильмов
        $query = 'SELECT * FROM `kino`';
    }
    $result = mysql_query($query);
    $array = array();
    while($row = mysql_fetch_assoc($result)){
        $array[] = $row;
    }
    //Возвращаем массив актеров, или массив фильмов
    return $array;
}


Если страница kino.php, то выводим информацию по фильмах
Код: php
1.
print_r(function getInfo('kino', NULL));


Если страница actor.php, то выводим информацию по актерах
Код: php
1.
print_r(function getInfo(NULL,'actor'));


Вопрос: Можно ли так применять параметры к функции (NULL), если нет, то почему???
Если честно, то код работает, но что то мне подсказывает, что этот код не имеет права на жизнь?
...
Рейтинг: 0 / 0
Функция и параметры
    #38942093
Фотография Герой дня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
amf1k,

так нельзя писать

Код: php
1.
print_r(function getInfo(NULL,'actor'));



ты путаешь объявление функции с её вызовом

вызывается функция просто по названию

Код: php
1.
print_r(getInfo(NULL,'actor'));



рекомендую использовать флаг и, чтобы для начала было легко, if`ы

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
function getInfo($flag)
{
    if ($flag == "actor")
    {
        $query = 'SELECT * FROM `actor`';
    }
    else if ($flag == "kino")
    {
        $query = 'SELECT * FROM `kino`';
    }
    else
    {
        //выдаем ошибку - если ни один вариант флага не подошёл
        throw new \Exception("Определите флаг");
    }

    $result = mysql_query($query);
    
    $array = array();
    
    while($row = mysql_fetch_assoc($result))
    {
        $array[] = $row;
    }

    return $array;
}
...
Рейтинг: 0 / 0
Функция и параметры
    #38942099
amf1k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет, мне нужно именно 2 параметра? можно ли так сравнивать параметры (NULL)? или это....?
...
Рейтинг: 0 / 0
Функция и параметры
    #38942105
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно передать все параметры одним массивом, а в функции разбирать, что именно передали.
...
Рейтинг: 0 / 0
Функция и параметры
    #38942108
amf1k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за ответы)
2-й вопрос:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
//Простоя функция для проверки: существуeт ли $var
function getResult($var){
    //Если существует
    if(isset($var)){
        return true;
    }
    //Если нет
    else{
        return false;
    }
}
//Проверка на странице, если не существует переменная $string
if(getResult($string) == false){
    echo 'Печалька:)';
}
//Если существует переменная $string
else{
    echo 'Все ок';
}



вопрос: проверять функцию на существование переменной вместо false на null, это одно то же???
...
Рейтинг: 0 / 0
Функция и параметры
    #38942148
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
amf1k
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
    //Если существует
    if(isset($var)){
        return true;
    }
    //Если нет
    else{
        return false;
    }

Платят за такой код, наверно, построчечно :-)
Можно проще:
Код: php
1.
return isset($var);


Это во-первых.

А во-вторых,
amf1k2-й вопрос:

Код: php
1.
2.
3.
4.
//Простоя функция для проверки: существуeт ли $var
function getResult($var){
    //Если существует
    if(isset($var)){

Переменная то существует в любом случае. Ибо она объявлена вместе с функцией. Так что, в данном случае происходит только проверка значения переменной на "не NULL".
...
Рейтинг: 0 / 0
Функция и параметры
    #38942158
по первому вопросу... понимаю что ответ вполне избыточен, но! не создавай такие конструкции... они приведут тебя в темные дебри однажды... делай хотя бы так ;)
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
function getInfo($kino, $actor){
        if($kino) {
             return getAllKinos();
        }
        if($actor) {
             return getAllActors();
        }
}

function getAllKinos() {
    return query( 'SELECT * FROM `kino`');   
}

function getAllActors() {
    return query( 'SELECT * FROM `actor`');   
}

function query($query) {
    $result = mysql_query($query);
    $array = array();
    while($row = mysql_fetch_assoc($result)){
        $array[] = $row;
    }
    return $array;
}


по второму напочитать http://php.net/manual/ru/functions.arguments.php
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Функция и параметры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]