[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с функциями
Страницы: 1, 2, 3, 4
Kusss
karm
тут уже писали как использовать функцию без global
function a($conn, $a) {
return mysqli_real_escape_string($conn,$a);
}

$text = a($conn, $_POST['text']);
twin
Цитата (Игорь_Vasinsky @ 23.02.2017 - 07:11)
я 100500 раз из месаджа в месадж пишу - не важен тут конкретный пример.
Очень важен. Потому что именно тут global уместен. В других сферических случаях - другой вопрос.
Цитата (Игорь_Vasinsky @ 23.02.2017 - 07:11)
при этом, в моей практике в связи с отказв от глобальных переменных я и не ощущал дискомфорта, который они могут вызвать
Поздравляю. :) Я понял уже, что герои не ищут легких путей.
Цитата (Игорь_Vasinsky @ 23.02.2017 - 07:11)
это как ситуация с большой лужей, можно каждый день ходить мимо, а потом наступить - придётся сушить обувь. - зачем? когда зная об опасности можно обходить с другой стороны.
С маленькой лужей. С маленькой. Но лучше же вместо того, чтобы её перешагнуть (когда знаешь, где она), нарезать многокилометровые демарши вокруг квартала.
Цитата (Игорь_Vasinsky @ 23.02.2017 - 07:11)
нет. ещё раз спрашиваю - для чего у функции есть аргументы?
Ну уж точно не для того, чтобы передавать ими всё подряд.
Цитата (Игорь_Vasinsky @ 23.02.2017 - 07:11)
эта функция будет для конкретного места, чтобы её использовать в другом месте нужно будет знать как назвать коннект или править переменную в функции.
Это так сложно? Наверное намного сложнее, чем прописать аргументы в каждом вызове каждой функции. Мнда...

Ведь придется тащить этот аргумент через всю логику, через непрофильные функции, вплоть до шаблона. :)

<?=getTable($conn); ?>

function
getTable($conn)
{
$result = getResult($conn);

foreach($result as $data)
{
// Генерация таблицы
}
}


function getResult($conn)
{
return .......
}

// И так далее.

Вопрос не в том, стоит ли использовать global (по мне так стоит). Вопрос в том, что аргументы тут вообще неуместны.

Если уж на то пошло, если так панически боитесь global, можно заюзать синглтон. С тем же static, если на процедурке. Но только не аргументы.
function getConnect()
{
static $link;

if(empty($link))
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

return $link:
}

function a($a) {
$conn = getConnect();
return mysqli_real_escape_string($conn,$a);
}


Хотя по мне, приверженцу KISS, это изврат. :)



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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

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