0

我正在尝试从 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');
        ...

对不起,我的英语太差了。

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];

并从 shell 执行这样的脚本:

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