blob: fac5ae287eb0607d7d301bbb4c81d062a6b30914 [file]
<?php
require "tests.php";
// Setting a variable that is a reference to an array copies into the array it refers to.
check::equal(numbers_sum(), 10, "numbers_sum");
check::set("numbers_ref", others_address());
check::equal(numbers_sum(), 100, "numbers_sum after set");
// An array of char is a string here, and so is a reference to one.
check::equal(check::get("letters"), "abc", "letters");
check::equal(check::get("letters_ref"), "abc", "letters_ref");
check::set("letters_ref", "xy");
check::equal(letters_are(), "xy", "letters_are");
check::equal(check::get("frozen_ref"), "xyz", "frozen_ref");
// A reference to an array of char cannot be null.
check::equal(length_of("abc"), 3, "length_of");
try {
length_of(null);
check::fail("length_of(null) did not throw");
} catch (TypeError $e) {
}
$member = new ArrayRefMember();
check::equal($member->sum(), 10, "member sum");
check::equal($member->text_ref, "hi", "member text_ref");
$member->text_ref = "bye";
check::equal($member->text_is(), "bye", "member text_is");
check::done();