ссылка на php - PullRequest
       20

ссылка на php

1 голос
/ 29 марта 2012

У меня проблема с передачей переменных в качестве ссылки в PHP.

Я хочу установить $grand_total после:

$data = array('title' => 'blabla', 'value' => &$grand_total);

// Set after
$grand_total += 50;

Это работает без проблем, но когда я передаю $grand_total var, используя функцию, я получаю ошибку ниже:

Произошла ошибка PHP. Уровень серьезности: 8192 Сообщение: время вызова передача по ссылке устарела Имя файла: controllers / checkout.php Номер строки: 131

Я передаю переменную следующим образом:

$data = array('title' => 'blabla', 'value' => price(&$grand_total));

// Set after
$grand_total += 50;

Я должен использовать функцию price().

Кто-нибудь может мне помочь?

Извините за мой плохой английский.

Ответы [ 2 ]

1 голос
/ 29 марта 2012

Это будет прекрасно работать для вас

    $grand_total = 10;
    function &price($value)
    {
        $value += 10;
        return $value ;
    }
    $grand_total = price($grand_total);
    $data = array('title' => 'blabla', 'value' =>$grand_total);
    $grand_total += 50;
    var_dump($grand_total)

Выход

    int 70

Для получения дополнительной информации

http://us3.php.net/manual/en/language.references.php

http://us3.php.net/manual/en/language.references.pass.php

Спасибо:)

0 голосов
/ 29 марта 2012

Без функции это немного сложно.Мы не знаем, что находится в строке «131»

Посмотрите на ваш php.ini

allow_call_time_pass_reference = On

Если этот параметр отключен, он не работает.Но в целом в PHP 5 не рекомендуется вызывать функцию времени со ссылкой ("& $ grand_total").Вызовите функцию без ссылки или назначьте ссылку в вашей функции другой переменной и используйте переменную, а не ссылку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...