2012-10-23 27 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>