0

SHスクリプトからPHPスクリプトを呼び出そうとしています。簡単です。SH から値を受け取りますが、OOP を使用して最初の PHP から他の PHP に値を渡そうとすると、何も渡されません。

これが最初の PHP です。URL で値を渡すよりも、SH ファイルから単純な呼び出しを受け取ります。

$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');
        ...

申し訳ありませんが、私の英語はとても下手です。

4

1 に答える 1

1

コマンドラインからPHPを実行する場合、そのような値を渡すことはできません。$argv予約変数を使用する必要があります: http ://www.php.net/manual/en/reserved.variables.argv.php

あなたはこのようなことを試すことができます:

$controller = $argv[1];
$metodo     = $argv[2];
$uniqueid   = $argv[3];

そして、シェルから次のようなスクリプトを実行します。

$ php script.php <c> <m> <uniqueid>
于 2012-10-23T17:27:07.910 に答える