我有从命令行运行的以下函数,第一个参数总是一个整数,例如(11),第二个参数总是一个字符串'acmeinc'
当我通过CLI运行代码时,它输出:
Number of arguments: 2
但是我似乎无法将$ order_id变量传递给同一函数中的$ this-> json_path变量 - 就好像$ order_id作为空值传递'' - 可以说明为什么这是发生?
public function execute($order_id, $merchant)
{
$numargs = func_num_args();
echo "Number of arguments: $numargs\n";
print_r($numargs[0]);
print_r($numargs[1]);
$this->_casperjs_path = 'casperjs';
$this->script_path = '"/srv/mysite.com/application/casperjs/'. $merchant .'.js"';
$this->json_path = '"/srv/mysite.com/application/casperjs/orders/'. $merchant .'-'. $order_id .'.txt"';
$path = ( $this->_phantomjs_path != '' ? 'PHANTOMJS_EXECUTABLE=' . $this->_phantomjs_path . ' ' : '' ) . $this->_casperjs_path . ' ' . $this->script_path . ' ' . $this->json_path;
die($this->json_path); // '"/srv/mysite.com/application/casperjs/orders/acmeinc-.txt"'
$return_value = exec( $path, $output = array());
return $return_value;
}
我期望die()按如下方式输出文件:
'"/srv/mysite.com/application/casperjs/orders/acmeinc-1.txt"'
相反,order_id变量似乎没有传递(或者以某种方式设置为空变量,如下所示:
'"/srv/mysite.com/application/casperjs/orders/acmeinc-.txt"'
任何人都可以解释为什么会这样吗?
答案 0 :(得分:0)
怀疑它...它是通过另一个函数传递并将其默认为一个空变量.. doh!