Mantis - Quercus
Viewing Issue Advanced Details
618 minor always 01-02-06 02:56 04-06-06 14:08
bago  
ferg  
normal  
closed  
fixed  
none    
none 3.0.19  
0000618: QRE: ArrayValue is not a valid key
See the reproducing code below.

com.caucho.quercus.QuercusRuntimeException: com.caucho.quercus.env.ArrayValueImpl@13e3940
is not a valid key
    at com.caucho.quercus.env.Value.toKey(Value.java:207)
    at com.caucho.quercus.env.Var.toKey(Var.java:205)
    at com.caucho.quercus.env.ArrayValueImpl.get(ArrayValueImpl.java:380)
    at com.caucho.quercus.env.ArrayValueWrapper.get(ArrayValueWrapper.java:140)
    at com.caucho.quercus.env.Var.get(Var.java:401)
    at _quercus._index__php.execute(C:/Programmi/Java/resin-3.0.16/webapps/ROOT/index.php:26)
    at com.caucho.quercus.page.PhpPage.executeTop(PhpPage.java:124)
    at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:195)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
    at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:106)
    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:178)
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:267)
    at com.caucho.server.port.TcpConnection.run(TcpConnection.java:388)
    at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:490)
    at com.caucho.util.ThreadPool.run(ThreadPool.java:423)
    at java.lang.Thread.run(Thread.java:595)
<?php
class test {
function test() {return 'foo'; }
}

$methods = array('bar'=>'test');
$testobj = new test();
print($testobj->$methods['bar']());
?>

Original php will print 'foo', Quercus throws an exception!

If I change the code to:

...
$temp = $methods['bar'];
print($testobj->$temp());

it works in quercus too.

Notes
(0001034)
ferg   
04-06-06 14:08   
php/09e0