帮助:解析函数/arraysize
arraysize
返回指定数组的元素数量。出自扩展 Arrays BWIKI和各大Wiki平台广泛使用此扩展。<br>在遥远的未来,它可能与Mediawiki新的并行解析器不兼容,请参阅扩展主页了解更多信息。。
比如数组 fruits 包含 3 个元素 apple, banana, orange,使用 {{#arraysize:fruits}} 将返回 3。空数组返回0。不存在的数组返回空字符串,可配合#if判断数组是否存在。
通常用于循环控制、条件判断、数组验证等场景。
语法
{{#arraysize: 数组名 }}
参数
- 数组名
- 要检查的目标数组名称(区分大小写)
效果
- 输出:返回数组中元素的数量(非负整数)
- 特殊情况:
- 空数组返回
0 - 不存在的数组返回空字符串(可用于判断数组是否存在)
- 空数组返回
示例
| 代码 | 效果 |
|---|---|
{{#arraydefine:fruits|apple,banana,orange}}{{#arraysize:fruits}}
|
3
|
{{#arraydefine:empty}}{{#arraysize:empty}}
|
0(空数组)
|
{{#arraysize:notexist}}
|
(不存在的数组,不输出任何字符)
|
{{#if: {{#arraysize:fruits}} | 数组存在 | 数组不存在 }}
|
数组存在 |
{{#if: {{#arraysize:notexist}} | 数组存在 | 数组不存在 }}
|
数组不存在 |
底层代码
/** mediawiki-extensions-Arrays-REL1_37 ExtArrays.php
* returns the size of an array.
* Print the size (number of elements) in the specified array and '' if array doesn't exist
* usage:
* {{#arraysize:arrayid}}
*
* See: http://www.php.net/manual/en/function.count.php
*/
public static function pf_arraysize( Parser &$parser, $arrayId ) {
$store = self::get( $parser );
if ( !$store->arrayExists( $arrayId ) ) {
return '';
}
return count( $store->getArray( $arrayId ) );
}
处理流程:
- 获取解析器上下文中的数组存储对象
- 检查指定名称的数组是否存在
- 若不存在,返回空字符串
- 若存在,调用 PHP 的
count函数返回数组元素数量
实际用例
- 一些Wiki使用了相关特性,如下所示这个静态列表可能在下列页面更改后过时,仅供批判性参考。
碧蓝航线 - blhx
明日方舟 - arknights
恋与深空 - lysk
崩坏:星穹铁道 - sr
第五人格 - dwrg
坎特伯雷公主与骑士唤醒冠军之剑的奇幻冒险 - gt
白荆回廊 - bjhl
公主连结 - pcr
无期迷途 - wqmt
梦幻模拟战 - langrisser
深空之眼 - dhmmr
克鲁赛德战记 - cq
铃兰之剑 - llzj
天地劫 - tdj
江南百景图 - jiangnan

沪公网安备 31011002002714 号