检查变量是否为流体中的数组类型
check if variable is of type array in fluid
fluid中是否可以检查变量类型是否为数组?我正在搜索类似的内容。
<f:if condition='{myvar.Type == "Array"}'></f:if>
或者我必须为此创建自己的 ViewHelper 吗?
您必须创建自己的 ViewHelper,或使用 existing one from EXT:vhs。
它的工作方式类似于 f:if
ViewHelper:
<v:condition.type.isArray value="{myvar}">
<f:then>
...
</f:then>
<f:else>
...
</f:else>
</v:condition.type.isArray>
我自己写ViewHelper解决了
class TestViewHelper extends AbstractViewHelper
{
/**
* Arguments Initialization
*/
public function initializeArguments()
{
$this->registerArgument('myvar', 'string', 'test', TRUE);
}
/**
* @return integer test
*/
public function render()
{
$arg = $this->arguments['myvar'];
$argType = gettype($arg);
if (preg_match("/array/i", "$argType")) {
return 1; //match
} else {
return 0; //No match
}
}
}
用法:
{namespace mynamespace=YOUR_EXTENSION_NAME\YOUR_VENDOR_NAME\ViewHelpers}
<f:if condition="<mynamespace:isarray myvar='{_all}'/>==1">
<f:then>
<strong>_all is an Array</strong><br>
</f:then>
<f:else>
<strong>_all is not an Array</strong><br>
</f:else>
</f:if>
fluid中是否可以检查变量类型是否为数组?我正在搜索类似的内容。
<f:if condition='{myvar.Type == "Array"}'></f:if>
或者我必须为此创建自己的 ViewHelper 吗?
您必须创建自己的 ViewHelper,或使用 existing one from EXT:vhs。
它的工作方式类似于 f:if
ViewHelper:
<v:condition.type.isArray value="{myvar}">
<f:then>
...
</f:then>
<f:else>
...
</f:else>
</v:condition.type.isArray>
我自己写ViewHelper解决了
class TestViewHelper extends AbstractViewHelper
{
/**
* Arguments Initialization
*/
public function initializeArguments()
{
$this->registerArgument('myvar', 'string', 'test', TRUE);
}
/**
* @return integer test
*/
public function render()
{
$arg = $this->arguments['myvar'];
$argType = gettype($arg);
if (preg_match("/array/i", "$argType")) {
return 1; //match
} else {
return 0; //No match
}
}
}
用法:
{namespace mynamespace=YOUR_EXTENSION_NAME\YOUR_VENDOR_NAME\ViewHelpers}
<f:if condition="<mynamespace:isarray myvar='{_all}'/>==1">
<f:then>
<strong>_all is an Array</strong><br>
</f:then>
<f:else>
<strong>_all is not an Array</strong><br>
</f:else>
</f:if>