Mantis - Quercus
Viewing Issue Advanced Details
2933 major always 09-14-08 00:47 09-15-08 19:03
koreth  
nam  
normal  
closed 3.2.1  
fixed  
none    
none 3.2.1  
0002933: Static class method can't access private instance fields
<?php
class Foo {
  private $val;
  public function __construct($val) { $this->val = $val; }
  public static function getVal($foo) { return $foo->val; }
}

$foo = new Foo(123);
print Foo::getVal($foo);


Vanilla PHP prints "123". Quercus prints nothing and logs an exception:

[00:44:08.117] {http--8080-21} com.caucho.quercus.QuercusErrorException: .../test.php:12: Fatal Error: Can't access private field 'Foo::val'
[00:44:08.117] {http--8080-21} at com.caucho.quercus.env.Env.error(Env.java:4806)
[00:44:08.117] {http--8080-21} at com.caucho.quercus.env.Env.error(Env.java:4709)
[00:44:08.117] {http--8080-21} at com.caucho.quercus.env.Env.error(Env.java:4387)
[00:44:08.117] {http--8080-21} at com.caucho.quercus.env.ObjectExtValue.getField(ObjectExtValue.java:178)
[00:44:08.117] {http--8080-21} at com.caucho.quercus.expr.FieldGetExpr.eval(FieldGetExpr.java:74)
...

Notes
(0003443)
ferg   
09-15-08 16:39   
php/091m

(backed out private method checking for now)
(0003445)
nam   
09-15-08 19:03   
fixed