Quercus是JAVA编写的PHP渲染引擎,可以用来对PHP代码进行渲染。
今天在项目中,根据long类型的ID查询对象的时候老是发现通过quercus引擎调用以后,参数和实际的值不一样,经过跟踪源码发现,quercus中Value类中的toJavalong方法将long类型的数据强制转化为int型,从而导致此BUG。
原来toJavalong方法的实现方法如下:
/**
* Converts to a java Long object.
*/
public Long toJavaLong()
{
return new Long((int)toLong());
}
修改后将强制转化去掉即可。