За последние 24 часа нас посетил 22301 программист и 1060 роботов. Сейчас ищут 714 программистов ...

глобальная переменная

Тема в разделе "PHP для новичков", создана пользователем selivanov, 2 мар 2018.

  1. selivanov

    selivanov Новичок

    С нами с:
    1 фев 2017
    Сообщения:
    123
    Симпатии:
    4
    знатоки кто знает почему этот код не срабатывает хотя путь к картинке правильный

    $image_path = 'images/' ;
    function img2($file, $alt = null, $height = null, $width = null)
    {
    if (isset($GLOBALS['image_path'])) {
    $file = $GLOBALS['image_path'] . $file;
    }
    $html = '<img "src= . $file . "';
    if (isset($alt)) {
    $html .= "alt=' . $alt . '";
    }
    if (isset($height)) {
    $html .= "height=' . $height . '";
    }
    if (isset($width)) {
    $html .= "width=' . $width . '";
    }
    $html .= ' />';
    return $html;

    }

    echo img2('foto.jpg');
     
  2. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    @selivanov, откройте либо исходный код страницы и посмотрите, что на самом деле сгенерировалось для img src.
    Либо через средства разработчика в том-же браузере... ("просмотреть код", либо "исследовать элемент" из контекстного меню)
    Тогда быть может, станет ясно, правильный ли путь.
    --- Добавлено ---
    И чего не хватает... Например, начального слеша...
     
  3. Sergey_Tsarev

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

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    Попробуй так для начала:
    PHP:
    1. <?
    2. $image_path = 'images/' ;
    3. function img2($file, $alt = null, $height = null, $width = null)
    4. {
    5.     $file = $GLOBALS['image_path'] ??  $GLOBALS['image_path'].$file;
    6.     $alt = $alt ?? "alt= $alt";
    7.     $height = $height ?? "height=$height";
    8.     $width =  $width ?? "width=$width";
    9.     $html = '<img "src=".$file." '.$alt.' '.$height.' '.$width .'/>';
    10.     return $html;
    11. }
    12. echo img2('foto.jpg');
    13. ?>
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.751
    Симпатии:
    1.322
    Адрес:
    Лень
    это норм? две ошибки в одном.
    PHP:
    1. $GLOBALS['image_path'] ??  $GLOBALS['image_path'].$file
     
  5. keren

    keren Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    513
    Симпатии:
    42
    PHP:
    1. $file = $GLOBALS['image_path'] . $file ?? null;
     
  6. selivanov

    selivanov Новичок

    С нами с:
    1 фев 2017
    Сообщения:
    123
    Симпатии:
    4
    я нашел ошибки -это неправильно поставил кавычки
    вот правильный код:

    $image_path ='images/' ;
    function img2($file, $alt = null, $height = null, $width = null)
    {
    if (!empty($GLOBALS['image_path'])) {
    $file = $GLOBALS['image_path'] . $file;
    }
    $html = '<img src="' . $file . '"';
    if (!empty($alt)) {
    $html .= 'alt="' . $alt . '"';
    }
    if (!empty($height)) {
    $html .= 'height="' . $height . '"';
    }
    if (!empty($width)) {
    $html .= 'width="' . $width . '"';
    }
    $html .= ' />';
    return $html;

    }
    //var_dump($GLOBALS['image_path']);
    echo img2('foto.jpg');
    --- Добавлено ---
    теперь возник другои вопрос зачем нужно переменные заключать в одинарные кавычки .мне непонятно зачем это надо
     
  7. Sergey_Tsarev

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

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    Ахах) Прошу прощения, вчера после корпоратива пришёл и решил посетить любимый форум)) больше не буду пьяным на форум заходить :) Даже самому интересно стало, как я такое написал :(
     
    MouseZver нравится это.
  8. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    Если в одинарные - то для того, чтобы в строке присутствовало имя переменной... Если в двойные - значение...
    Подробнее.
     
    selivanov нравится это.
  9. selivanov

    selivanov Новичок

    С нами с:
    1 фев 2017
    Сообщения:
    123
    Симпатии:
    4
    спасибо понял
    --- Добавлено ---
    как раз что с начальным слэшом не работает а без работает может объяснишь почему?
     
  10. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    selivanov нравится это.
  11. selivanov

    selivanov Новичок

    С нами с:
    1 фев 2017
    Сообщения:
    123
    Симпатии:
    4
    я так понимаю что при переносе такого проекта с моего локального(openserver) на web надо будет указать путь относительно корня -то есть добавить слэш перед images