- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте!
Пример из книжки:
------------------------
Предположим, необходимо создать несколько переменных, имена которых совпадают
с названиями городов, а их значениями является количество людей, населяющих соответствующий
город. Для этого можно использовать такой код:
1 $Reno = 360000;
2 $Pasadena = 138000;
3 $cityname = "Reno";
4 echo "Население $cityname - ${$cityname}";
5 $cityname = "Pasadena";
6 echo "Население $cityname - ${$cityname}";
Результатом выполнения этого кода является следующий текст:
Население Reno - 360000
Население Pasadena - 138000
Обратите внимание, что в операторе echo имена переменных необходимо заключать
в фигурные скобки. Без использования фигурных скобок вы получите совсем другой результат.
------------------------
Переменные $cityname имеют значения "Reno"; и "Pasadena";
Каким образом в примере получилось:
"Население Reno - 360000
Население Pasadena - 138000"
ведь оператор echo имеет одинаковые переменные: "Население $cityname - ${$cityname}"; по моей логике должно, что то одно взяться (один город в смысле)
Получается учитывается строка? То есть строка 5 и 6 это уже отдельный сценарий?
Заранее спасибо всем ответившим!
доллар не теряйте
"Население Reno - 360000
Население Pasadena - 138000"
ведь оператор echo имеет одинаковые переменные: "Население $cityname - ${$cityname}"; по моей логике должно, что то одно взяться (один город в смысле)
$cityname - это переменная, которая содержит значене $cityname='значение';
${$cityname} - это переменная, имя которой $значение переменной $cityname.
Это 2 разные переменные,
//Присваиваем переменной Reno значене 360000
1 $Reno = 360000;
//Присваиваем переменной Pasadena значение 138000
2 $Pasadena = 138000;
//Присваиваем переменной значение Reno
3 $cityname = "Reno";
4 echo "Население $cityname - ${$cityname}";
/*
Перезаписываем переменную на Pasadena
для добавления записи в строку надо перед = ставить . или после равно Объединять старую переменную + новые данные:
Например:
$cityname .= "Pasadena"; //Добавление в конец строки.
или
$cityname = $cityname."Pasadena"; // - данный способ результат будет тот же - но выполняется не одинаково "объединение"
*/
5 $cityname = "Pasadena";
/*
Запись 6 будет читаться так: выводим "Населенный значение от переменной $cityname -
выводим переменную ${отобразить значение $cityname}, то есть переменную с именем значения от переменной $cityname"
*/
6 echo "Население $cityname - ${$cityname}";
Как смог пояснил.
Чем это лучше массивов многоуровневых? Память экономит?
Sly32, преимущество есть. Не только по памяти но и по скорости работы. Но необходимо понимать, где нужно использовать подобный метод, а где необходимо избежать.
Чем это лучше массивов многоуровневых? Память экономит?
Думаю, в данном случае цель была просто показать, что такое вообще возможно - использовать переменную в имени переменной.
Sly32, преимущество есть. Не только по памяти но и по скорости работы. Но необходимо понимать, где нужно использовать подобный метод, а где необходимо избежать.
Расскажите вкратце.