Зачем проверять, существует ли функция полосок?

Я нашел следующий код, который проверяет, stripslashes() функция существует.

if ( function_exists( 'stripslashes' ) ) {
// Do something
} else {
// Do something
}

stripslashes() Функция работает на PHP4 и PHP5, поэтому мне интересно, зачем ей нужен условный оператор, чтобы проверить, существует ли функция. Я не понимаю

Это не субъективный вопрос. Просто скажите мне, в чем разница между использованием этого утверждения и неиспользованием его. Заранее спасибо!

Вот ссылки по теме, где они были использованы:

2

Решение

Раньше в PHP была функция, известная как магические цитаты, который, будучи из лучших побуждений, вызвал бесконечную путаницу.

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

Правильный способ определить, включены ли магические кавычки, — использовать функцию, созданную для этих целей, get_magic_quotes_gpc вот так.

if (get_magic_quotes_gpc()) {

Или, возможно, следующее, если вы обеспокоены, это будет удалено.

if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {

При этом вся функция магических кавычек была удалена еще в PHP 5.4, поэтому, если вам не нужно поддерживать устаревшие версии PHP, вы можете просто забыть о том, что когда-либо существовало (если вы не используете WordPress, который …).

Кстати, я полагаю, что возможно stripslashes функция может быть удалена в будущем и, возможно, не существовала в какой-то момент, но в этом контексте, вероятно, это не причина.

3

Другие решения

Sidenote: Переписано из некоторых моих комментариев (слегка измененных), чтобы снабдить вопрос дополнительным ответом на вопрос Александра.


Это, вероятно, чтобы проверить, не пошел ли какой-нибудь кодер и создал пользовательскую функцию, называемую так же (способ чьего-то безумия?) или кто-то взломал ядро ​​PHP и удалил его; Я, конечно, размышляю, это не невозможно.

Однако то же самое относится и к if ( function_exists( 'mysql_real_escape_string' ) ),

Если сервер не поддерживает эти старые и устаревшие mysql_ функции, тогда требуется условное утверждение, и оно окажется эффективным / полезным для использования чего-либо такого рода.

Ссылки: (mysql_ удалено с PHP 7 и другие уведомления об устаревании)

Лично, function_exists() должен использоваться только против вероятных устаревших функций; mysql_ будучи одним из них и session_register() — Я уверен, что есть еще.

Это перечислено в руководстве от внесенных заметок http://php.net/manual/en/function.stripslashes.php и похоже, что-то с magic_quotes_gpc согласно тому, что Александр (О’Мара) сказал в комментариях.


N.B .:

Я ни в коем случае не стремлюсь получить что-либо от этого, но для других, посещающих вопрос.

3

По вопросам рекламы [email protected]