有没有办法在PHP中的多函数调用中创建if语句?
我正在寻找类似的东西:
$object = new Object::method1('a')
->method1('b')
if($someVar == 'c') { ->method1('c') } // <- This is what I am looking for
->method2();
$object->method3();
方法顺序已修复!
我尝试了类似这样的内容,但它不起作用,因为必须在同一语句中调用method2()
,否则它找不到method3()
。
$object = new Object::method1('a')
->method1('b');
if($someVar == 'c') {
$object->method1('c');
}
$object->method2();
$object->method3();
编辑:
我的原始代码是一个非常复杂的SQL查询(试图创建一个MCVE)。 method1
用于添加where子句,method3()
将查询结果。
答案 0 :(得分:4)
看起来你的方法返回一个包含下一个方法的对象。所以你需要在前面方法的返回值上执行方法:
$object = new Object::method1('a')
->method1('b');
if($someVar == 'c') {
$object = $object->method1('c');
}
$object = $object->method2();
$object->method3();
拥有逻辑变量名称会更好,但您可以使用它来检查它是否有效。