За последние 24 часа нас посетили 17542 программиста и 1649 роботов. Сейчас ищут 926 программистов ...

Массив вне функции виден в в функции

Тема в разделе "PHP для новичков", создана пользователем VLK, 19 дек 2013.

  1. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Подскажите, есть массив:

    Код (Text):
    1. $mas = array(
    2. 'one' => '1',
    3. 'two' => '2',
    4. 'three' => '3'
    5. );
    как сделать что бы он был виден в функции не передавая его функции?

    я пытался перед ним поставить слово global но к сожалению говорит что это ошибка, в сессию засовывать его не хочется.

    Сам массив больше, он является что то вроде языкового пакета, по этому его переменные много где используются, как лучше поступить в данном случае?
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    внутри функции
    global $mas;
     
  3. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    По пробовал разные комбинации, что то не получается, как надо написать, допустим я хочу в функции вывести $mas['two']

    Код (Text):
    1. $mas = array(
    2. 'one' => '1',
    3. 'two' => '2',
    4. 'three' => '3'
    5. );
    6.  
    7. function show () {
    8. echo $mas['two'];
    9. }
    что и куда именно надо вставить, что бы работало?
     
  4. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    ну тебе же написали, что внутри функции
    Код (PHP):
    1. function show () {
    2.   global $mas;
    3.   echo $mas['two'];
    4. } 
     
  5. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Я так сделал, не выводит (не работает)

    Хотя возможно это я где то накосорезил, т.к. я передаю функции этот массив и все равно не выводит, вообщем буду искать ошибку у себя.
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Включите ошибки или смотрите логи, что пишется.
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Можно через статик класс
     
  8. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    В том то весь и смысл, что ни каких ошибок не писало, просто там где должно было выводить переменные массива, выводило ни чего, т.е. была пустота.

    Я перебрал страницы и все заработало.

    Вообще спасибо за подсказки, не знал что global надо писать в функции.
     
  9. pistol

    pistol Новичок

    С нами с:
    24 ноя 2013
    Сообщения:
    76
    Симпатии:
    0
    Любой ценой передать его функции. Даже ценой

    Код (Text):
    1. function zzz($string) {
    2.     if(is_array($string)) ...
    3.     else ...
    4. }
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    хорошо бы понять зачем это нужно
     
  11. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Уже не нужно с появлением ООП в php.
    А вообще нужно это было для области видимости внутри функций.
    Для избежания передачи в прототип функции.