Как импортировать переменную внутри функции класса?


Хотел бы получить $valortotal и взять ее, ведь внутри функции класса, как видно в примере ниже. Обязанный.

$valortotal = 15.00;

class CreatePaymentRequestLightbox
{
    public static function main()
    {
        $pedido_total = $valortotal;
    ....
.....
Author: stderr, 2015-05-19

5 answers

Возможностью было бы передать переменную в качестве аргумента для функции main.

class CreatePaymentRequestLightbox{
    public function main($valortotal){
        $pedido_total = $valortotal;
        echo $pedido_total;
    }
}

$valortotal = 15.00;
$paymentRequest = new CreatePaymentRequestLightbox();
$paymentRequest->main($valortotal);

Посмотреть demonstração

Или использовать переменную публикует класса:

class CreatePaymentRequestLightbox{
    public $pedido_total = 0;

    public function main(){
        echo $this->pedido_total;
    }
}

$valortotal = 15.00;
$paymentRequest = new CreatePaymentRequestLightbox();
$paymentRequest->pedido_total = $valortotal;
$paymentRequest->main();

Посмотреть demonstração

, Или использовать закрытую переменную и изменить значение с государственной:

class CreatePaymentRequestLightbox{
    private $pedido_total = 0;

    public function editarPedidoTotal($pedido_total){
        $this->pedido_total = $pedido_total;
    }
    public function main(){
        echo $this->pedido_total;
    }
}

$valortotal = 15.00;
$paymentRequest = new CreatePaymentRequestLightbox();
$paymentRequest->editarPedidoTotal($valortotal);
$paymentRequest->main();

Посмотреть demonstração

 8
Author: stderr, 2015-05-19 20:40:55

Сделать main() принять параметр.

$valortotal = 15.00;

class CreatePaymentRequestLightbox
    {

        public static function main($valortotal)
             {

                  $pedido_total = $valortotal;

Таким образом, вы проходите прямое значение или переменную при вызове функции

$valortotal = 15.00;
$paymentRequest = new CreatePaymentRequestLightbox()->main($valortotal);
 4
Author: Erlon Charles, 2015-05-19 20:15:53

Если значение уже находится внутри класса

class CreatePaymentRequestLightbox
    {

private $valorTotal = '150.00';

        public static function main()
             {

                  $pedido_total = $this->valorTotal;

Если вы идете ловить за пределами класса, чтобы играть внутри

class CreatePaymentRequestLightbox
    {

public $valorTotal;

        public static function main()
             {

                  $pedido_total = $this->valorTotal;
}
}

$classe = new CreatePaymentRequestLightbox;
$classe->valorTotal = '150.00';
 4
Author: Alisson Acioli, 2015-05-19 20:42:27

, Только помимо других ответов, а также, например, комментарий от @ErlonCharles, что не рекомендуется использовать во всех случаях (как приведенные выше), и почти всегда лучший вариант, это передать значение в параметр.

, Однако в некоторых случаях, например, для подключения объекта, то лучше будет использовать глобальную переменную:

$connection = new PDO();

class AlgumaClasse
{
    public static function main($valortotal)
    {
        global $connection;
        $connection->query("INSERT INTO valores (valor) VALUES ({$valortotal})");
    }
}

AlgumaClasse::main(15.00);
 1
Author: KaduAmaral, 2017-04-13 12:59:34

И Не рекомендуется, но вы можете использовать также так:

$valortotal = 15.00;

class CreatePaymentRequestLightbox
{
    public static function main()
    {
        global $valortotal;
        $pedido_total = $valortotal;
    ...
...
 1
Author: Diego Andrade, 2017-05-04 19:50:06