eurobyte.ru - мощные сервера с Дата-центрами в Нидерландах и Москве. От 159 ₽/мес.

Null или просто пустое значение в переменной?

Решил исправить ошибки php, которые появляются если переменной нет

Раньше я не использовал empty и выводил переменную вот так

$search_post_id = $_GET['search_post_id'];

Сейчас вот в таком виде вывожу

if(!empty($_GET['search_post_id'])){
	$search_post_id = $_GET['search_post_id'];
}
else {
	$search_post_id = '';
}

Но интересно что указывать в переменную $search_post_id
null или пустое значение ?
или без разницы что указывать?
У меня работают оба варианта

Использую в WP_Query

$args = array(
	'p' => $search_post_id,
);

$query = new WP_Query( $args );

if ( $query->have_posts() ) {
	while ( $query->have_posts() ) {
		$query->the_post();
		echo ''.$post->ID. ' - <a target="blank" href="'.get_permalink($post->ID).'">'.get_the_title() .'</a><br>';
	}
} else {
   echo 'Постов не найдено';
}
wp_reset_postdata();

Или в условии IF

if ($search_post_id ) {
echo 'тут что-то выводим';
}
0
lethalblo
1.4 года назад 58
  • 0
    Kama 9896

    В данном случае разницы нет - код и так и так будет работать.

    А вообще по логике нужно 0 писать и кастовать получаемое значение. Судя по названию переменной она должна содержать ИД поста - это число, вот и надо в него записывать число, где 0 означает что нет ИД или он не передан.

    Коротко можно записать так:

    $search_post_id = (int) ( $_GET['search_post_id'] ?? 0 );

    Иногда логика кода требует понимания было ли вообще передано значение. Тогда можно использовать также null, чтобы где-то дальше проверить именно на null и понять было ли что-то передано вообще и если нет, как-то это по-особенному обработать. На практике в 99% случаев отдельной логики под не переданное значение нет и достаточно нуля.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация