Фиксация пустой функции PHP

from: http://matplotlib.org/api/path_api.html#module-matplotlib.path

Пользователи объектов Path не должны обращаться к вершинам и массивы кодов. Вместо этого они должны использовать iter_segments (), чтобы получить пары вершин / кодов. Это важно, так как многие объекты Path, как оптимизация, вообще не сохраняют коды, но имеют по умолчанию для них iter_segments ().

В противном случае я не совсем уверен, в чем ваш вопрос. [Zip] - иногда полезная встроенная функция при работе с координатами. 1

28
задан hakre 14 January 2012 в 11:44
поделиться

8 ответов

Это не работало на меня.

if (empty($variable) && '0' != $variable) {
  // Do something
}

я использовал вместо этого:

if (empty($variable) && strlen($variable) == 0) {
  // Do something
}
37
ответ дан Sakis Vtdk 28 November 2019 в 02:41
поделиться

Я редко использую empty() по причине, которую Вы описываете. Это путает законные значения с пустотой. Возможно, это - потому что я делаю большую работу в SQL, но я предпочитаю использовать NULL для обозначения отсутствия значения.

PHP имеет функцию is_null(), который тестирует на переменную или выражение, являющееся NULL.

$foo = 0;
if (is_null($foo)) print "integer 0 is null!\n"; 
else print "integer 0 foo is not null!\n";

$foo = "0";
if (is_null($foo)) print "string '0' is null!\n"; 
else print "string '0' is not null!\n";

$foo = "";
if (is_null($foo)) print "string '' is null!\n"; 
else print "string '' is not null!\n";

$foo = false;
if (is_null($foo)) print "boolean false is null!\n"; 
else print "boolean false is not null!\n";

можно также использовать, точно равняется оператору ===, чтобы сделать подобный тест:

if ($foo === null) print "foo is null!\n";

Это верно, если $foo NULL, но не, если это false, нуль, "", и т.д.

19
ответ дан Bill Karwin 28 November 2019 в 02:41
поделиться

"0" всегда рассмотрены ложью (или пустой) в PHP, и это имеет много смысла (не, что я буду обсуждать это здесь). Если Вы хотите иметь нуль, оценивают к истинному также, используют strlen($value).

7
ответ дан too much php 28 November 2019 в 02:41
поделиться

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

, Учитывая проблему, поскольку Вы описываете его, лучшая вещь состояла бы в том, чтобы ограничить Ваш код, таким образом, переменная не может быть помещена в неопределенное состояние типа. Иначе Вы захотите протестировать на тип данных с помощью gettype ().

4
ответ дан dkretz 28 November 2019 в 02:41
поделиться

Вообще говоря, Вы хотите использовать тройное, равняется оператору для определения, когда значение действительно является пустым или ложным. Это более конкретно и результаты ВСЕГДА возврат точно как ожидалось.

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

Кроме того, многие программисты склонны использовать 0 или пустая строка для обозначения несуществующего значения, но это более корректно (и я чувствую лучшую практику) для использования нулевого значения для обозначения любого значения (независимо от типа), который действительно не существует.

3
ответ дан Noah Goodrich 28 November 2019 в 02:41
поделиться

Я создал IsEmpty() краткая быстрая функция.

function IsEmpty($mData) {
    return is_int($mData) ? false : 
        is_string($mData) ? $mData=="" : 
        empty($mData);
}
0
ответ дан null 28 November 2019 в 02:41
поделиться

Наиболее эффективное решение для этой проблемы должно протестировать, если переменная является ложью, например,


if (!$variable_name) {echo $variable_name;}

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

-2
ответ дан Nikola Stjelja 28 November 2019 в 02:41
поделиться

Вы пытаетесь использовать empty() для чего-то это не предназначается для. Лично, я думаю, что это - поведение, прибывает из более старой парадигмы программирования в PHP, и это могло, вероятно, быть ликвидировано.

Вместо этого осуществите свои более явные проверки. Вместо того, чтобы проверять, не ли значение полезно, проверьте, что это. Например, если Вы хотите массив, проверьте, что это - массив (is_array()) вместо того, чтобы проверять, является ли это строкой.

Кроме того, можно полагаться на то, что все $_POST и $_GET переменные являются строками, таким образом, можно сделать сравнения с"", или проверять это strlen() == 0.

0
ответ дан staticsan 28 November 2019 в 02:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: