isset
не подходит. Согласно документации PHP: http://php.net/manual/en/function .array-key-exists.php (см. пример # 2 array_key_exists () vs isset ()) Метод array_key_exists
предназначен для проверки присутствия ключа в массиве.
Итак, код в вопрос может быть изменен следующим образом:
function fromPerson() {
if (array_key_exists('fromPerson', $_POST) == FALSE) {
return '';
} else {
return '+from%3A'.$_POST['fromPerson'];
};
}
$newString = fromPerson();
в ответе @BrenBarn говорится все это, но если Вы похожи на меня, это могло бы требовать времени для понимания. Вот мой случай и как ответ @BrenBarn относится к нему, возможно, он поможет Вам.
случай
package/
__init__.py
subpackage1/
__init__.py
moduleX.py
moduleA.py
Используя наш знакомый пример, и добавляет к нему, что moduleX.py имеет относительный импорт в.. moduleA. Учитывая, что я пытался писать сценарий тестирования в subpackage1 каталоге, который импортировал moduleX, но затем описал страшную ошибку OP.
сценарий тестирования Перемещения Решения
к тому же уровню как пакет и пакет subpackage1.moduleX импорта
Объяснение
, Как объяснено, относительный импорт сделан относительно текущего имени. Когда мой сценарий тестирования импортирует moduleX из того же каталога, затем имя модуля внутри moduleX является moduleX. То, когда это встречается, родственник импортируют интерпретатор, не может создать резервную копию иерархии пакета, потому что это уже в вершине
, Когда я импортирую moduleX сверху, затем называю внутри moduleX, пакет subpackage1.moduleX, и относительный импорт может быть найден