Я сослался документация и попробовал это —
<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]
Я использую такую конструкцию:
<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>
я хотел бы использовать 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.