我正在努力写下我期待的内容,因此我将展示代码和预期的输出。
@Override
public void render () {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
Gdx.gl.glEnable(GL20.GL_TEXTURE_2D);
texture.bind();
shader.begin();
shader.setUniformMatrix("u_worldView", viewport.getCamera().combined);
shader.setUniformi("u_texture", 0);
mesh.render(shader, GL20.GL_TRIANGLES);
shader.end();
}
修改 好的,我编辑了someOtherFunction的调用,以更好地反映我的实时代码。使用call_user_func_array调用它会产生此错误。
警告:参数1到B :: someOtherFunction()应该是参考,给定值
答案 0 :(得分:1)
通过引用传递参数:
function someOtherFunction(&$object) {
答案 1 :(得分:0)
我对解决方案并不完全满意,但它在我的情况下工作。我理解这个解决方案可能会导致受保护和私有属性的方案出现问题。但我唯一的另一种选择是为一个参考问题修改整个框架。
function someOtherFunction($object) {
$a = new A();
$this->someFunction($a);
// Expected
var_dump($a->someProp); // Some Value
// PROBLEM LIES HERE
// I am trying to set the referenced original object to the altered new object
// I'm guessing this line breaks the original reference, so how can I avoid that?
//$object = clone $a;
// Copy each property manually
foreach(get_object_vars($a) as $key => $value) {
$object->$key = $value;
}
}