Как проверить, является ли переменная пустой в phing build xml?

Я сослался документация и попробовал это —

<php function="empty" returnProperty="productionSameAsExpectedBranch">
<param value="${productionDeviationFromExpectedBranch}"/>
</php>

Но это дает ошибку —

[php] Вызов функции PHP: empty ()
[PHP Error] call_user_func_array () ожидает, что параметр 1 является допустимым обратным вызовом, функция «пустая» не найдена или недопустимое имя функции [строка 125 из /usr/share/pear/phing/tasks/system/PhpEvalTask.php]

3

Решение

Я использую такую ​​конструкцию:

<if>
<or>
<not><isset property="productionSameAsExpectedBranch" /></not>
<and>
<isset property="productionSameAsExpectedBranch" />
<equals arg1="${productionSameAsExpectedBranch}" arg2="" />
</and>
</or>
<then>
<!-- it is not set or empty -->
<!--property name="productionSameAsExpectedBranch" value="something" override="true" /-->
</then>
<else />
</if>
2

Другие решения

я хотел бы использовать isfalse условие, чтобы проверить, если строка пуста.

<target name="empty-string">

<property name="productionSameAsExpectedBranch" value=""/>

<if>
<isfalse value="${productionSameAsExpectedBranch}"/>
<then>
<echo>Property is string empty, do something!</echo>
</then>
</if>

</target>

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

Это работает, потому что внутренне isfalse использует кастинг PHP.

0

По вопросам рекламы [email protected]