Вам следует избегать использования статических вызовов вообще [article] .
И в этом случае вы даже ухудшаете ситуацию, потому что вы явно ожидаете два разных поведения от одной и той же функции,Этого достаточно, чтобы иметь две отдельные функции.Кроме того, нет более «элегантного» способа сделать это.Единственное, что вы можете изменить, это предположить, что всякий раз, когда функция вызывается с параметром, она является статической.Другие альтернативы могут включать отражения (которые являются медленными) или debug_backtrace()
(что довольно уродливо).
Я могу порекомендовать вам посмотреть несколько лекций из "Чистых переговоров по коду".Даже если это не убедит вас изменить свой стиль, оно даст вам полное представление о таких понятиях, как внедрение зависимостей и модульное тестирование:
Кроме того, вам действительно следует прекратить использовать старые функции mysql_*
в качестве API для доступа к MySQL.Им больше 10 лет, они больше не обслуживаются, и сообщество начало процесс обесценивания .
Вам следует внимательно рассмотреть альтернативы: PDO и MySQLi .Они оба предоставляют возможность использовать подготовленные заявления.