~ubuntu-branches/ubuntu/quantal/php5/quantal

« back to all changes in this revision

Viewing changes to ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt

  • Committer: Bazaar Package Importer
  • Author(s): Sean Finney
  • Date: 2009-07-01 09:12:10 UTC
  • mto: (0.9.1) (1.1.17 upstream)
  • mto: This revision was merged to the branch mainline in revision 58.
  • Revision ID: james.westby@ubuntu.com-20090701091210-go0h6506p62on17r
Tags: upstream-5.3.0
ImportĀ upstreamĀ versionĀ 5.3.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
--TEST--
 
2
ReflectionMethod::invokeArgs() further errors
 
3
--FILE--
 
4
<?php
 
5
 
 
6
class TestClass {
 
7
    public $prop = 2;
 
8
 
 
9
    public function foo() {
 
10
        echo "Called foo(), property = $this->prop\n";
 
11
        var_dump($this);
 
12
        return "Return Val";
 
13
    }
 
14
 
 
15
    public static function staticMethod() {
 
16
        echo "Called staticMethod()\n";
 
17
        var_dump($this);
 
18
    }
 
19
 
 
20
    private static function privateMethod() {
 
21
        echo "Called privateMethod()\n";
 
22
    }
 
23
}
 
24
 
 
25
abstract class AbstractClass {
 
26
    abstract function foo();
 
27
}
 
28
 
 
29
$testClassInstance = new TestClass();
 
30
$testClassInstance->prop = "Hello";
 
31
 
 
32
$foo = new ReflectionMethod($testClassInstance, 'foo');
 
33
$staticMethod = new ReflectionMethod('TestClass::staticMethod');
 
34
$privateMethod = new ReflectionMethod("TestClass::privateMethod");
 
35
 
 
36
echo "Wrong number of parameters:\n";
 
37
var_dump($foo->invokeArgs());
 
38
var_dump($foo->invokeArgs(true));
 
39
 
 
40
echo "\nNon-instance:\n";
 
41
try {
 
42
    var_dump($foo->invokeArgs(new stdClass(), array()));
 
43
} catch (ReflectionException $e) {
 
44
    var_dump($e->getMessage());
 
45
}
 
46
 
 
47
echo "\nNon-object:\n";
 
48
var_dump($foo->invokeArgs(true, array()));
 
49
 
 
50
echo "\nStatic method:\n";
 
51
 
 
52
var_dump($staticMethod->invokeArgs());
 
53
var_dump($staticMethod->invokeArgs(true));
 
54
var_dump($staticMethod->invokeArgs(true, array()));
 
55
var_dump($staticMethod->invokeArgs(null, array()));
 
56
 
 
57
echo "\nPrivate method:\n";
 
58
try {
 
59
    var_dump($privateMethod->invokeArgs($testClassInstance, array()));
 
60
} catch (ReflectionException $e) {
 
61
    var_dump($e->getMessage());
 
62
}
 
63
 
 
64
echo "\nAbstract method:\n";
 
65
$abstractMethod = new ReflectionMethod("AbstractClass::foo");
 
66
try {
 
67
    $abstractMethod->invokeArgs($testClassInstance, array());
 
68
} catch (ReflectionException $e) {
 
69
    var_dump($e->getMessage());
 
70
}
 
71
try {
 
72
    $abstractMethod->invokeArgs(true);
 
73
} catch (ReflectionException $e) {
 
74
    var_dump($e->getMessage());
 
75
}
 
76
 
 
77
?>
 
78
--EXPECTF--
 
79
Wrong number of parameters:
 
80
 
 
81
Warning: ReflectionMethod::invokeArgs() expects exactly 2 parameters, 0 given in %s on line %d
 
82
NULL
 
83
 
 
84
Warning: ReflectionMethod::invokeArgs() expects exactly 2 parameters, 1 given in %s on line %d
 
85
NULL
 
86
 
 
87
Non-instance:
 
88
string(72) "Given object is not an instance of the class this method was declared in"
 
89
 
 
90
Non-object:
 
91
 
 
92
Warning: ReflectionMethod::invokeArgs() expects parameter 1 to be object, boolean given in %s on line %d
 
93
NULL
 
94
 
 
95
Static method:
 
96
 
 
97
Warning: ReflectionMethod::invokeArgs() expects exactly 2 parameters, 0 given in %s on line %d
 
98
NULL
 
99
 
 
100
Warning: ReflectionMethod::invokeArgs() expects exactly 2 parameters, 1 given in %s on line %d
 
101
NULL
 
102
 
 
103
Warning: ReflectionMethod::invokeArgs() expects parameter 1 to be object, boolean given in %s on line %d
 
104
NULL
 
105
Called staticMethod()
 
106
 
 
107
Notice: Undefined variable: this in %s on line %d
 
108
NULL
 
109
NULL
 
110
 
 
111
Private method:
 
112
string(84) "Trying to invoke private method TestClass::privateMethod from scope ReflectionMethod"
 
113
 
 
114
Abstract method:
 
115
string(51) "Trying to invoke abstract method AbstractClass::foo"
 
116
 
 
117
Warning: ReflectionMethod::invokeArgs() expects exactly 2 parameters, 1 given in %s on line %d