如何在PHP的schedule_all函数内直接调用upgrade_instance_at_date函数(无需cURL)
直接调用同一类中的方法替代cURL请求
既然两个函数在同一个文件(同一个类)里,完全不需要用cURL发起HTTP请求,直接调用类内的方法即可:
- 确认
upgrade_instance_at_date是当前类的public成员方法(如果是private/protected权限,需要调整访问权限或者通过类内其他允许的方式调用) - 把你原本通过URL传递的
domain_name和date作为参数直接传入目标方法
修改后的schedule_all代码如下:
public function schedule_all() { // 直接调用同一类中的upgrade_instance_at_date方法,传入所需参数 $this->upgrade_instance_at_date($machines->domain_name, $date); }
如果upgrade_instance_at_date的方法参数名和你传递的变量对应关系需要明确,比如它的定义是:
public function upgrade_instance_at_date($domainName, $upgradeDate) { // 方法内部逻辑 }
你可以选择顺序传参,或者用PHP 8.0+支持的命名参数让代码更清晰:
// 顺序传参 $this->upgrade_instance_at_date($machines->domain_name, $date); // 命名参数(可读性更强) $this->upgrade_instance_at_date( domainName: $machines->domain_name, upgradeDate: $date );
注意:要确保$machines和$date这两个变量在schedule_all方法内是可访问的(比如是方法内的局部变量、类的成员变量,或者通过方法参数传入),否则会触发未定义变量的错误。
内容的提问来源于stack exchange,提问作者cojocaru robert
相关产品推荐
相关产品推荐

