[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблемка с функцией
Renden
пример:

function foo($name, $allow) {
if(isset($allow))
$sql = $allow ? 'AND allow=1':'AND allow=0';
$query = mysql_query("SELECT * FROM tbl
WHERE name='
$name' $sql");
}

Суть в том что $allow должна быть true или false, но если аргумент пустой ниче не подставлять в запрос.
Вопрос в том чему должна бысть тогда равна $allow по умолчанию в функции?, $allow=bool не работает.



Спустя 2 минуты, 33 секунды (16.09.2011 - 12:04) linker написал(а):
function foo($name, $allow = null) 
{
if (!is_null($allow))
$sql = $allow ? 'AND allow=1':'AND allow=0';
...

Спустя 20 минут, 52 секунды (16.09.2011 - 12:25) Renden написал(а):
linker
Хмм.. еще вопрос, допустим так:

function foo($name = '', $allow = null) {
$sql = 'WHERE xz=0 ';
if(!is_null($allow))
$sql .= $allow ? 'AND allow=1':'AND allow=0';
if(!empty($name))
$sql .= "AND name='$name'";

$query = mysql_query("SELECT * FROM tbl $sql");
}

как мне допустим вызвать только allow, писать так foo('',false) -как то убого как можно отловить в функции то что нужен только 2 параметр, чтоб писать просто foo(false).
Возможно криво, но типы разные в 1 случае string, во 2-м bool я думаю только так?:

function foo($name = null, $allow = null) {
$sql = 'WHERE xz=0 ';
if(!is_null($allow))
$sql .= $allow ? 'AND allow=1':'AND allow=0';
if(!empty($name))
if(is_bool($name))
$sql .= $name ? 'AND allow=1':'AND allow=0';
else
$sql .= "AND name='$name'";

$query = mysql_query("SELECT * FROM tbl $sql");
}

Или все проще? :)

Спустя 5 часов, 46 минут, 31 секунда (16.09.2011 - 18:12) Winston написал(а):
Цитата (Renden @ 16.09.2011 - 12:25)
как мне допустим вызвать только allow, писать так foo('',false)

А зачем тебе передавать false в ф-ю если там уже и так стоит NULL ? :huh:
По моему у тебя напутано с логикой работы скрипта...
Тогда лучше напиши
$name = false, $allow = flase

PS: Есть золотое правило: ставьте все менее важные аргументы ф-и в конец.
Быстрый ответ:

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