我推荐了the documentation并尝试了这个-
<php function="empty" returnProperty="productionSameAsExpectedBranch">
<param value="${productionDeviationFromExpectedBranch}"/>
</php>
但它给出了错误-
php调用
函数: empty() PHP错误call_user_func_array()要求参数1是有效的回调,找不到函数'empty‘或/usr/share/pear/phing/tasks/system/PhpEvalTask.php
的函数名第125行无效
发布于 2016-03-19 00:26:49
我使用的结构是这样的:
<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>
发布于 2018-08-24 15:44:02
我会使用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的类型转换。
发布于 2019-04-29 01:10:32
另一种解决方案是使用带有空行模式的matches条件,如下所示:
<target name="empty-string">
<property name="productionSameAsExpectedBranch" value=""/>
<if>
<matches string="${productionSameAsExpectedBranch}" pattern="^$"/>
<then>
<echo>Property is string empty, do something!</echo>
</then>
</if>
</target>
https://stackoverflow.com/questions/36085550
复制相似问题