This page is a translated version of the page Extension:Variables and the translation is 26% complete.
Cẩm nang phần mở rộng MediaWiki
Trạng thái phát hành: ổn định
Cài đặt Parser function
Mô tả Introduces parser functions for dealing with page-scoped variables.
Tác giả
Maintainer(s) MGChecker
Phiên bản 2.5.1 (2019-07-11)
MediaWiki 1.29+
PHP 5.5+
Database changes Không
Composer mediawiki/variables
Giấy phép ISC License
Tải xuống
  • $wgVariablesAreVolatile
  • $wgVariablesDisabledFunctions
Quarterly downloads 197 (Ranked 41st)
Wiki công khai 1,808 (Ranked 201st)
Translate the Variables extension if it is available at translatewiki.net
Vagrant role variables
Phản hồi Open tasks · Báo cáo lỗi
Cảnh báo Cảnh báo: This extension is incompatible with plans to parallelize parsing, as is intended by the use of Parsoid . Therefore, the future of this extension is uncertain, and it is expected to become incompatible with the standard MediaWiki parser within a few years. For further information, see task T250963 and Parsoid/Extension API § No support for sequential, in-order processing of extension tags.
The #var_final parser function is shown as deprecated in MediaWiki 1.35 or above, due to changes in the parser. However, it will continue to work up to MediaWiki 1.39 , and afterwards if removing this parser function. See task T276627 and task T250963 for further information.

Variables là một phần mở rộng rất đơn giản cho phép bạn định nghĩa một biến trong một trang viết, sử dụng nó sau vẫn trong trang đó, thay đổi giá trị của nó chẳng hạn, một giá trị trả về từ một biểu thức.

Nó rất giống một tiêu bản, có điều rất nhẹ và chỉ tồn tại trong một trang đơn lẻ, vì thế bạn có thể dùng rất nhiều biến trong một trang mà không lo làm ngập lụt wiki với số lượng khổng lồ các tiêu bản. Ngoài ra biến cũng có thể được sử dụng để đánh dấu trạng thái của một phần nào đó trong trang. Kết hợp với ParserFunctions để đạt kết quả cao nhất.

This extension will not be enabled for wikis run by the Wikimedia Foundation (WMF).[1][2][3][4] See alternatives.

Gán giá trị cho biến


  • {{#vardefine:tên biến|giá trị}}

Gán một giá trị giá trị cho biến tên biến (đã tồn tại hoặc định nghĩa mới).

  • Example: {{#vardefine:iconwidth|25}} making iconwidth = 25


  • {{#vardefineecho:tên biến|giá trị}}

Works exactly as #vardefine, but the affected value is printed.

  • Example: making iconwidth = {{#vardefineecho:iconwidth|25}}

Retrieving the value of a variable


The value of the variable variablename is produced by

  • {{#var:tên biến}}

If undefined, this produces an empty string; it does not give an error message.

It is possible to get a default value for the case that the variable is undefined or void:

  • {{#var:tên biến | defaultvalue }}

Tương tự,

  • {{#if: {{#var:tên biến}} | {{#var:tên biến }} | defaultvalue }}

but it is much shorter and better arranged. Before version 2.0 though, the default value always was expanded. From version 2.0 on the default only gets expanded in case it is actually used.

The value can be used in parser functions, etc.


  • {{#varexists:tên biến }} returns 1 if the variable is already defined. If the variable is not defined the return value is void.

It supports a second and a third parameter to replace these values.

  • {{#varexists:variablename | if-value | else-value }}

This is equivalent to:

  • {{#if: {{#varexists: variablename }} | if-value | else-value }}

but it is much shorter and better arranged. Before version 2.5 though, both were always expanded. From version 2.5 on the if and else values only get expanded when their cases are actually entered.


Experimental function introduced in Variables 2.0. This function will output the final, last value a variable has at the end of the page rendering. Naturally, the value will be inserted after the parser went over the entire wiki markup, so this function can't be used in other functions, expecting the right value is being used. Example:

  • {{#var_final:tên biến | defaultvalue}}

The default value will be used if the variable doesn't exist at the final page rendering stage or if its value is an empty string. The default will be expanded right where the function is used, so the parameter will be expanded, even if it won't be needed.

Ví dụ

Lưu ý rằng phần mở rộng ParserFunctions cũng cần thiết để sử dụng #expr.

Tính 2*a + b:

  • {{#vardefine:x|{{#expr:2*{{#var:a}}+{{#var:b}}}}}}

Cộng 1 vào n:

  • {{#vardefine:n|{{#expr:{{#var:n}}+1}}}}


  • Download and place the file(s) in a directory called Variables in your extensions/ folder.
  • Thêm mã sau vào dưới cùng tệp $LocalSettings của bạn:
    wfLoadExtension( 'Variables' );
  • Configure as required
  •   Xong – Chuyển tới Special:Version trên wiki của bạn để xác nhận phần mở rộng được cài đặt thành công.

Dành cho những người đang dùng MediaWiki 1.30 trở xuống:

Những chỉ dẫn bên trên diễn tả cách mới để cài phần mở rộng này sử dụng wfLoadExtension(). Nếu bạn muốn cài đặt phần mở rộng này trong những phiên bản cũ hơn, thay vì wfLoadExtension( 'Variables' );, bạn cần dùng:

require_once "$IP/extensions/Variables/Variables.php";


This extension provides two configuration parameters:

Allows to disable the parser frame being marked as volatile by the extension, i.e. disable template caching.
Default: true;
Allows to disable specified parser functions provided by this extension.
Default: [];
Example: [ 'var_final', 'vardefineecho' ];


The recommended version of the Variables extension for recent MediaWiki releases is listed below. Older versions of the extensions might work as well, but aren't tested for new MediaWiki releases.


As this extension will not be enabled for wikis run by the Wikimedia Foundation (WMF), here are some alternatives:[1][2][3][4]

  • If you use Variables as cache for expensive operations, you can transform the section where you need them into a template and pass the required information as template parameters instead. This will work until you reach the expansion depth limit, which can be increased if necessary.
  • If you use Variables to do more complex template operations than possible with simple Extension:ParserFunctions , and if you have sufficient permissions on the server, you can use Scribunto's Lua functionality instead. You may not be able to install Scribunto on shared hosting. Note that this does not add support for global Variables. However, Extension:VariablesLua adds a Scribunto interface for the Variables store.
  • Don't use variables, instead duplicate the information you need as a variable. If that information is acquired by an expensive template call, performance may suffer. This will work until you reach the node count limit.
  • If you require variables just for autonumbering, you could look into Extension:NumerAlpha .

Xem thêm