[英]How to check if variable is empty in phing build xml?
我參考了文檔並嘗試了這個 -
<php function="empty" returnProperty="productionSameAsExpectedBranch">
<param value="${productionDeviationFromExpectedBranch}"/>
</php>
但它給出了錯誤 -
[php]調用PHP函數:empty()[PHP錯誤] call_user_func_array()期望參數1是有效的回調,函數'空'未找到或函數名無效[/ usr / share / pear / phing / tasks第125行/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的轉換。
另一種解決方案是使用匹配條件和空行模式,如:
<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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.