PHP, функция isset(), нюансы в определении

228
31 июля 2017, 14:20

По мотивам заведенного бага (см. внизу секцию "comments")

Ссылка на страницу документации

В английской документации сказано:

isset — Determine if a variable is set and is not NULL

В русской переведено так:

isset — Определяет, была ли установлена переменная значением отличным от NULL

Автор багрепорта настаивает на исправлении перевода на следующий:

isset — Определяет, была ли создана переменная и установлена значением отличным от NULL

И все бы ничего, но в процессе дискуссии всплыло следующее:

Именно в моей учебной группе пару учеников не смогли понять что isset определяет что переменная была создана! И с точки зрения ЛОГИКИ они правы.

И вот тут я впал в ступор. Мне кажется, что вопрос ушел в какую то совсем не ту степь, и упор на то, что isset определяет что переменная была создана несет скорее вред, чем пользу.

Собственно хочется услышать мнение профессионалов в PHP, это я дурак и ничего не понимаю или автору багрепорта хочется странного?

Answer 1

Если Вы хотите установить значение переменной то isset здесь нипричем.. isset реагирует только на null, ведь если переменная ровняется null то какой смысл isset-у говорить что она есть..? Веть она неактивная.. она даже не пустая, а именно скрипт ее не воспринимает вообще...

 $text = null;
  if(isset($text){
  //переменной нет!
   }

isset стоит визывать только если переменной присвоено хоть какоето значетие

 $text = 'text';

Или как минимум нужно указать что она пустая:

 $text = '';

Пустую переменную isset видит (ведь она есть, просто пустая). А вот переменную со значеним null нет.

Я просто не доконца понял Ваш вопрос..

READ ALSO
Аналоги str_replace в php

Аналоги str_replace в php

Есть код, который ищет значения в одном массиве и изменяет значения строки взяв значения из другого массива? Можно ли как то объеденить данные...

277
Тернарный оператор классы laravel

Тернарный оператор классы laravel

Как использовать тернарный оператор с классами? Пытаюсь сделать вот так, не выходит:

309
WordPress - запись не видит тему

WordPress - запись не видит тему

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

332
русский язык в jomSocial

русский язык в jomSocial

Как включить русский язык в jomSocial 42, Joomla 3

318