За последние 24 часа нас посетили 16540 программистов и 1679 роботов. Сейчас ищут 864 программиста ...

Вывод содержимого переменной

Тема в разделе "PHP для новичков", создана пользователем yomoto, 20 мар 2019.

  1. yomoto

    yomoto Активный пользователь

    С нами с:
    19 мар 2019
    Сообщения:
    19
    Симпатии:
    0
    Имеем переменную:
    $t7 = 0.14 + 0.012 * $d;
    echo $t7;

    Как вывести не результат а его содержимое?
    Сейчас выводится:
    0.26
    А надо:
    0.14+0.012*10
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Содержимое переменной - это конечное значение, а не набор операторов и аргументов, его составляющих. PHP - императивный язык, не функциональный. Не использует монады и не строит граф операций из узлов. По этому достать из переменной цепочку, которая ее формирует, невозможно. Ее просто нет.

    Если надо вывести выражение, выводите выражение как текст:
    PHP:
    1. $t7 = 0.14 + 0.012 * $d;
    2. echo '0.14 + 0.012 * ' . $d . ' = ' . $t7;
     
  3. yomoto

    yomoto Активный пользователь

    С нами с:
    19 мар 2019
    Сообщения:
    19
    Симпатии:
    0
    Дело в том, что цифры могут изменяться:
    PHP:
    1. if ($a == 1) {
    2.     $t7 = 0.14 + 0.012 * $d;
    3. } elseif ($a == 2) {
    4.      $t7 = 0.18 + 0.012 * $d;
    5. } elseif ($a == 3) {
    6.      $t7 = 0.23 + 0.012 * $d;
    7. } elseif ($a == 4) {
    8.     $t7 = 0.31 + 0.012 * $d;
    9. }
    В одном случае нужно выводить значение, в другом — «набор операторов и аргументов».
     
  4. hust0

    hust0 Активный пользователь

    С нами с:
    6 июл 2013
    Сообщения:
    321
    Симпатии:
    8
    PHP:
    1. $a1 = '0.14';
    2. $a2 = '0.012';
    3.  
    4. $t7 = $a1 + $a2 * $d;
    5.  
    6. echo $a1.' + '.$a2.' * '.$d.' = '.$t7;
     
    Fell-x27 нравится это.
  5. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @yomoto, или ещё вариант:
    PHP:
    1. $d = 2;
    2. $arr = [
    3.     [1 => 0.14, 0.18, 0.23, 0.31],
    4.     0.012,
    5.     $d,
    6.     ];
    7. if(array_key_exists($a, $arr[0])) {
    8.     $str7 = "{$arr[0][$a]} + {$arr[1]} * $arr[2]";
    9.     $t7 = $arr[0][$a] + $arr[1] * $arr[2];
    10. } else {
    11.     // throw new...
    12. }
    13. var_dump($t7, $str7);
     
    yomoto нравится это.
  6. yomoto

    yomoto Активный пользователь

    С нами с:
    19 мар 2019
    Сообщения:
    19
    Симпатии:
    0
    Спасибо. Вышел из ситуации следующим образом:

    PHP:
    1. if ($a == 1) {
    2.     $t7 = 0.14 + 0.012 * $d;
    3.     $t7_1 =  '0.14 + 0.012 × ';
    4. echo $t7_1$d = $t7;
    5. } elseif ($a == 2) {
    6.      $t7 = 0.18 + 0.012 * $d;
    7.      $t7_1 =  '0.18 + 0.012 × ';
    8. echo $t7_1$d = $t7;
    9. }
     
  7. Artur_hopf

    Artur_hopf Старожил

    С нами с:
    7 май 2018
    Сообщения:
    2.264
    Симпатии:
    405
    А если будет 100 вариантов разных, так 100 раз и напишешь else if? =)
     
  8. yomoto

    yomoto Активный пользователь

    С нами с:
    19 мар 2019
    Сообщения:
    19
    Симпатии:
    0
    Так я и пишу здесь, потому-что в PHP полный ноль.
    Спасибо всем за решения.
     
  9. Artur_hopf

    Artur_hopf Старожил

    С нами с:
    7 май 2018
    Сообщения:
    2.264
    Симпатии:
    405
    Тебе же дали ответ. Вместо 1,2,3... передавай $a1, $a2