Я написал validation
черту для моей модели классов, а также библиотеку отчетов об ошибках, какие форматы и возвращает JSON объект ошибки, предупреждения и т.д.Избегайте `Undefined Property` в PHP при использовании` isset() `в обратном вызове?
В моей validation
черты, у меня есть этот метод ...
function hasValue($value)
{
return (isset($value) && !(trim($value) === ''));
}
PHP выбросит потеплению, если я просто пытаюсь использовать !(trim($value)
в условном, который говорит мне, что переменная не определена. Таким образом, вы должны сделать это ...
if (isset($value) && !(trim($value) === ''))
//Do Something
Я создал этот метод для консолидации является очень распространенной задачей, требующей два метода в один метод, но я получаю такое же предупреждение, как если бы я использовал метод trim()
в одиночестве.
Есть ли способ сделать это без отключения предупреждений?
EDIT
Там, кажется, некоторая путаница. Мне нужно, чтобы это работало для переменных и свойств объекта. Я пытаюсь превратить это ...
if (empty($obj->email) && $this->validateEmail($obj->email))
//Do Something
в это ...
if ($this->validateEmail($obj->email))
//Do Something
Имея мой hasValue()
метод вызвать на волю, и внутри метода validateEmail()
.
Вы можете попробовать '(isset ($ value))? ! (trim ($ value) === ''): false; 'если вы пытаетесь сохранить все в одной строке – Drew
Не то, чтобы я НЕ МОЖЕТ писать это каждый раз, я ищу удобочитаемость и удобство использования , Я НЕ ХОЧУ писать его каждый раз. – Allenph
Может быть, я что-то пропустил, но я делаю такие вещи, как это ... 'if ((isset ($ value)) && (! Empty ($ value))) {$ value = trim ($ value); do something} else { // значение ошибки не было установлено или было установлено значение null } ' –