blob: b04731503863f509030f4f343a963dc76c1a6552 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
use strict;
use warnings FATAL => 'all';
use Apache::Test;
use Apache::TestRequest;
plan tests => 2, need_php4;
## testing PHP OO bug (#7515)
## php src:
## <?php
## class obj {
## function method() {}
## }
##
## function test($o_copy) {
## $o_copy->root->set_in_copied_o=TRUE;
## var_dump($o_copy);?><BR><?php }
##
## $o->root=new obj();
##
## ob_start();
## var_dump($o);
## $x=ob_get_contents();
## ob_end_clean();
##
## $o->root->method();
##
## ob_start();
## var_dump($o);
## $y=ob_get_contents();
## ob_end_clean();
##
## // $o->root->method() makes ob_get_contents() have a '&' in front of object
## // so this does not work.
## // echo ($x==$y) ? 'success':'failure';
##
## echo "x = $x";
## echo "y = $y";
## ?>
##
## output should be:
## x = object(stdClass)(1) {
## ["root"]=>
## object(obj)(0) {
## }
## }
## y = object(stdClass)(1) {
## ["root"]=>
## &object(obj)(0) {
## }
## }
my $result = GET_BODY "/php/construct.php";
## get rid of newlines to make compairon easier.
$result =~ s/\n//g;
my ($x, $y);
if ($result =~ /x = (.*)y = (.*)/) {
$x = $1;
$y = $2;
}
ok $x eq "object(stdClass)(1) { [\"root\"]=> object(obj)(0) { }}";
ok $y eq "object(stdClass)(1) { [\"root\"]=> &object(obj)(0) { }}";
|