Variables are always passed "by reference" and not "by value"

if a variable is changed on a sub page and then referenced again on the parent page the variable has the value assigned on the sub page and not the value from the parent page.

This behaviour is shown in the below examples:

Define initial values for numerator, denominator and quotient

variable defined: numerator=10
variable defined: denominator=1
variable defined: quotient=${= %3.0f : ${numerator} / ${denominator} =}.0
variable defined: quotient2=${= %3.0f : ${numerator} / ${denominator} =}.0

Included page: >VariablesRedefinedMultipleTimesOnSamePageAndUsedInSubpage (edit)

Redefine denominator

variable defined: denominator=2

Included page: TestWithVariable (edit)

To test This page three variables must be defined on the parent page: "numerator", "denominator" and "quotient"


Define variables on this sub page. They can be used on the main page

variable defined: result=77.0
variable defined: quotient4=${= ${numerator} / ${denominator} =}.0

print quotient = 5.0
print quotient2 = 5.0
print quotient4 = 5.0

eg.Division
# Test Description numerator denominator quotient?
Expected result is calculated with expression 10 2 5.0
Expected result is in variable 10 2 5.0
Store result in a symbol 10 2 $result=
Use symbol $result 1 5.0

printing a variable is possible: result = 77.0
printing a symbol is not possible: result = $result

Redefine denominator

variable defined: denominator=2.5

Included page: TestWithVariable (edit)

To test This page three variables must be defined on the parent page: "numerator", "denominator" and "quotient"


Define variables on this sub page. They can be used on the main page

variable defined: result=77.0
variable defined: quotient4=${= ${numerator} / ${denominator} =}.0

print quotient = 4.0
print quotient2 = 4.0
print quotient4 = 4.0

eg.Division
# Test Description numerator denominator quotient?
Expected result is calculated with expression 10 2.5 4.0
Expected result is in variable 10 2.5 4.0
Store result in a symbol 10 2.5 $result=
Use symbol $result 1 4.0

printing a variable is possible: result = 77.0
printing a symbol is not possible: result = $result

Check values from variables and symbols

script
# $ {numerator} has the value as defined on this page
check echo 10 10
# $ {denominator} has the value as defined on the sub page
check echo 2.5 2.5
# $ {quotient4} has the value from expression on the sub sub page
check echo 4.0 4.0
# $ {result} has the value as defined on the sub sub page
check echo 77.0 77.0
# $ result Symbol from sub sub page can be accessed
check echo $result 4.0

Redefine numerator

variable defined: numerator=20

Included page: >VariablesRedefinedMultipleTimesOnSamePageAndUsedInSubpage (edit)

Redefine denominator

variable defined: denominator=2

Included page: TestWithVariable (edit)

To test This page three variables must be defined on the parent page: "numerator", "denominator" and "quotient"


Define variables on this sub page. They can be used on the main page

variable defined: result=77.0
variable defined: quotient4=${= ${numerator} / ${denominator} =}.0

print quotient = 10.0
print quotient2 = 10.0
print quotient4 = 10.0

eg.Division
# Test Description numerator denominator quotient?
Expected result is calculated with expression 20 2 10.0
Expected result is in variable 20 2 10.0
Store result in a symbol 20 2 $result=
Use symbol $result 1 10.0

printing a variable is possible: result = 77.0
printing a symbol is not possible: result = $result

Redefine denominator

variable defined: denominator=2.5

Included page: TestWithVariable (edit)

To test This page three variables must be defined on the parent page: "numerator", "denominator" and "quotient"


Define variables on this sub page. They can be used on the main page

variable defined: result=77.0
variable defined: quotient4=${= ${numerator} / ${denominator} =}.0

print quotient = 8.0
print quotient2 = 8.0
print quotient4 = 8.0

eg.Division
# Test Description numerator denominator quotient?
Expected result is calculated with expression 20 2.5 8.0
Expected result is in variable 20 2.5 8.0
Store result in a symbol 20 2.5 $result=
Use symbol $result 1 8.0

printing a variable is possible: result = 77.0
printing a symbol is not possible: result = $result

Check values from variables and symbols again

script
# $ {numerator} has the value as defined on this page
check echo 20 20
# $ {denominator} has the value as defined on the sub page
check echo 2.5 2.5
# $ {quotient4} has the value from expression on the sub sub page
check echo 8.0 8.0
# $ {result} has the value as defined on the sub sub page
check echo 77.0 77.0
# $ result Symbol from sub sub page can be accessed
check echo $result 8.0