我试图从SH脚本调用PHP脚本。 这很简单,我从SH接收值,但是当我尝试使用OOP将值从第一个PHP传递到其他PHP时,没有传递任何内容。
这是第一个PHP,它接收来自SH文件的简单调用,而不是通过URL传递值:
$controller = $_GET['c'];
$metodo = $_GET['m'];
$uniqueid = $_GET['uniqueid'];
$url = '../controllers/'.ucfirst($controller).'.controller.php';
include_once($url);
$controller = ucfirst($controller)."Controller";
$objeto = new $controller;
$dados = $_POST;
$objeto->dados = $dados;
$objeto->uniqueid = $uniqueid;
//CALL THE FUNCTION
$result = $objeto->$metodo($uniqueid);
//RETURN THE RESPONSE
echo $result;
这里我收到传递给对象的值: (这里是问题,值是空的)
include('../classes/Tarifacao.class.php');
class TarifacaoController{
public function Tarifa($uniqueid){
$obj_tarif = new Tarifacao;
$bilhete = $obj_tarif->BuscaUltimoBilhete($uniqueid);
echo $this->Imprime($bilhete,'BILHETE');
$uniqueid = $bilhete['uniqueid'];
echo $this->Imprime($uniqueid,'UNIQUEID');
intval($duracao = $bilhete['billsec']);
echo $this->Imprime($duracao,'DURAÇÃO');
...
抱歉,我的英语太差了。
答案 0 :(得分:1)
如果从命令行执行PHP,则无法传递这样的值。
您需要使用$argv
保留变量:http://www.php.net/manual/en/reserved.variables.argv.php
您可以尝试这样的事情:
$controller = $argv[1];
$metodo = $argv[2];
$uniqueid = $argv[3];
从shell执行这样的脚本:
$ php script.php <c> <m> <uniqueid>