Variables

WMLScript provides only local variables and access to the WML variables (which are always string-valued) from the browser context. There are no global variables, and there is no way to have any values persist from call to call. When a function returns, all its variables are lost.

A WMLScript variable can take a value of any of the five datatypes, including invalid. Variables are declared with the var statement. Any number of variables may be specified, separated by commas such as:

var foo;
var x, y, z;
var a, b, c, d, e, f, g, h, i, j;

Variables must be declared before use, so for example the following is incorrect:

function foo ( )
{
    wibble = 2;
    var wibble;
}

All variables are implicitly initialized to the empty string, "". If some other initial value is required, an optional initializer may be included with the declaration:

var foo = 17, bar = 42;

This is completely equivalent to:

var foo, bar;
foo = 17;
bar = 42;

This means that the usual pattern of a WMLScript function is to first read variables out of the WML browser context, then process those values in some way, then write back new values to the context, and run a task (usually either a <refresh> or a <go>). For an illustration, see Example 10.1. The updated display reflects the new values of variables. I will return to browser variables in later chapters.

Example 10-1. Outline of a Function Called from WML

extern function called_from_wml ( ) { /* First read variables from browser context. * These could also be passed in ...

Get Learning WML, and WMLScript now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.