[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Функция и параметры
Страницы: 1, 2
amf1k
Есть 2 страницы: например - kino.php и actor.php
Есть БД, в ней 2 таблицы - фильмы и актеры
Есть функция вывода информации с БД

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, то выводим информацию по фильмах
print_r(function getInfo('kino', NULL));

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

Вопрос: Можно ли так применять параметры к функции (NULL), если нет, то почему???
Если честно, то код работает, но что то мне подсказывает, что этот код не имеет права на жизнь?
AllesKlar
function getInfo($source)
{
switch($source)
{
case 'kino':
$query = 'SELECT * FROM `kino`';
break;
case 'actor':
$query = 'SELECT * FROM `actor`';
break;
default:
$query = 'DEFAULT_QUERY';
}

//...........
// дaлее по тексту ;)

}

print_r(getInfo('kino'));
print_r(getInfo('actor'));


_____________
[продано копирайтерам]
Игорь_Vasinsky
забей.
http://izvestia.ru/news/585631

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
AllesKlar
Игорь_Vasinsky
поки жива Україна biggrin.gif

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

А my-hit так вообще у пендосов хостится. И ложили они на правооблодателей.

_____________
[продано копирайтерам]
kaww
Зачем 2 параметра? можно так
function getInfo($entityName)
{
$result = mysql_query('select * from `' . $entityName . '`');
$array = array();
while($row = mysql_fetch_assoc($result)){
$array[] = $row;
}
return $array;
}

но и этот код плох и имеет много проблем, он лишь демонстрирует как избавиться от избыточности во входных параметрах функции
AllesKlar
kaww
Я так сторонник отдельных запросов для каждого случая.
Позже он 100% захочет к kino что-нибудь "приджоинить", а actor оставить, как есть, и начнется пляска с бубном smile.gif

_____________
[продано копирайтерам]
amf1k
Цитата (AllesKlar @ 22.04.2015 - 07:37)
function getInfo($source)
{
switch($source)
{
case 'kino':
$query = 'SELECT * FROM `kino`';
break;
case 'actor':
$query = 'SELECT * FROM `actor`';
break;
default:
$query = 'DEFAULT_QUERY';
}

//...........
// дaлее по тексту ;)

}

print_r(getInfo('kino'));
print_r(getInfo('actor'));

ну а если вместо параметра строк - 'kino' и 'actor' будет подставляется переменная, мне же в функции нужно делать проверку что выводить!
вот я и спрашиваю правильно ли это?
amf1k
Цитата (AllesKlar @ 22.04.2015 - 07:46)
kaww
Я так сторонник отдельных запросов для каждого случая.
Позже он 100% захочет к kino что-нибудь "приджоинить", а actor оставить, как есть, и начнется пляска с бубном smile.gif

это для примера, вопрос в том правильно ли это?
AllesKlar
amf1k

$var = 'kino';
print_r(getInfo($var));
$var = 'actor';
print_r(getInfo($var));
$var = 'Aleksandra Grey';
print_r(getInfo($var));


Цитата
это для примера, вопрос в том правильно ли это?

С точки зрения синтаксиса - правильно.
С точки зрения проектирования приложений - не правильно.

_____________
[продано копирайтерам]
kaww
AllesKlar, а затем постраничную навигацию, фильтры, сортировки. В общем эта функция изначально не жизнеспособна, о чем я указал в своем первом посте wink.gif
amf1k
Цитата (kaww @ 22.04.2015 - 07:51)
AllesKlar, а затем постраничную навигацию, фильтры, сортировки. В общем эта функция изначально не жизнеспособна, о чем я указал в своем первом посте ;)

спасибо за ответы)
2-й вопрос:
//Простоя функция для проверки: существуeт ли $var
function getResult($var){
//Если существует
if(isset($var)){
return true;
}
//Если нет
else{
return false;
}
}

//Проверка на странице, если не существует переменная $string
if(getResult($string) == false){
echo 'Печалька:)';
}
//Если существует переменная $string
else{
echo 'Все ок';
}

вопрос: проверять функцию на существование переменной вместо false на null, это одно то же???
Игорь_Vasinsky
amf1k
Цитата
getResult($string) == false


уверен???

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
amf1k
Цитата (Игорь_Vasinsky @ 22.04.2015 - 08:14)
amf1k
Цитата
getResult($string) == false


уверен???

нет, вот и спрашиваю?
Игорь_Vasinsky
Цитата
нет, вот и спрашиваю?


можешь глянешь в мануале как сравнивать блевый тип?

разницу видишь между

=
==
===

?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
amf1k
Цитата (Игорь_Vasinsky @ 22.04.2015 - 08:16)
Цитата
нет, вот и спрашиваю?


можешь глянешь в мануале как сравнивать блевый тип?

разницу видишь между

=
==
===

?

начинаем показывать свое величие пыхашника) скажи сразу что код липовый и все, пойду поплачу в сторонке:)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.