2012-10-23 25 views
0

我试图从SH脚本调用PHP脚本。 很容易,我从SH获得值,但是当我尝试使用OOP将第一个PHP的值传递给其他PHP时,没有任何信息通过。传递由SH脚本调用的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'); 
     ... 

对不起,我的英语很差。

回答

1

如果您从命令行执行PHP,则不能传递这样的值。 您需要使用保留变量: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>