Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 17.03.2018
Сообщений: 108

Жесткие ссылки

15.08.2020, 11:34. Показов 1525. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть непонятный момент с жёсткими ссылками. Будет непросто это описать, но я постараюсь, заранее всем спасибо.

PHP
1
2
3
4
5
6
<?php
$arr = [1, 3, 5, 10];
foreach ($arr as &$v) $v *= 2;
 
foreach ($arr as $v) echo $v.'-';
?>
При выводе массива все числа кроме десятки умножаются на два. Но дело в том, что как понял я, о последней десятке в массиве, как о "не умножившейся", что вроде бы, последнее число просто игнорируется, а в браузер выводится результат умножения предпоследнего числа, но два раза. А десятка и вовсе не выводится даже не умножившаяся. Просто в данном случае перед десяткой стоит пятёрка и кажется, что последняя десятка не умножилась, а на самом деле пятерка умножилась на два и вывелась два раза. Я проверил этот момент подставив другие значения в массив.

PHP
1
2
3
4
5
6
<?php
$arr = [1, 2, 3, 4];
foreach ($arr as &$v) $v *= 2;
 
foreach ($arr as $v) echo $v.'-';
?>
Таким образом два раза выводится число шесть, а четвёрка просто игнорируется и число восемь не выводится. Помогите пожалуйста разобраться, почему всё-таки так происходит.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.08.2020, 11:34
Ответы с готовыми решениями:

Жесткие ссылки
Всем добрый день! Я заметил, что именно при использовании жесткой ссылки два последних элемента массива одинаковые и являются результатом...

Жесткие и гибкие ссылки
Какова область применения таких возможностей или для красоты? Спасибо и, если можно, вот ещё топик: ...

Как заменить все ссылки на текст кроме ссылки моего сайта?
Всем привет! Есть выражение и есть текст ссылками. Где ссылки заменяю на слова &quot;Ссылки запрещены!&quot;. Всё работает! Вот теперь...

4
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
15.08.2020, 12:04
tracerX, всё умножается корректно:
PHP
1
2
3
4
5
6
7
8
9
10
11
$arr = [1, 3, 5, 10];
 
foreach ($arr as &$v) {
    $v *= 2;
}
 
var_dump($arr);
 
foreach ($arr as $val) {
    echo $val . '-';
}
Просто не используйте одинаковые имена переменных в foreach.
1
Невнимательный
 Аватар для ft4l
3107 / 1278 / 358
Регистрация: 08.02.2013
Сообщений: 7,477
Записей в блоге: 2
15.08.2020, 12:07
Лучший ответ Сообщение было отмечено tracerX как решение

Решение

Цитата Сообщение от tracerX Посмотреть сообщение
два раза выводится число шесть
https://www.php.net/manual/ru/... oreach.php
...
Внимание
Ссылка $value на последний элемент массива останется после окончания цикла foreach. Рекомендуется уничтожать ее с помощью unset(). В противном случае вы можете столкнуться с таким поведением:

...
специфичная для php штука.
PHP
1
2
3
4
$arr = [1, 2, 3, 4];
foreach ($arr as &$v) $v *= 2;
unset($v);
foreach ($arr as $v) echo $v.'-';

Не по теме:

Жёсткие ссылки это вроде в файловой системе используются вместо файлов.
В php просто значения передаются по ссылка, типа ссылка на значение.



Цитата Сообщение от Строитель Посмотреть сообщение
$arr as $val
Вы имя переменной другое используете
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
15.08.2020, 12:10
Цитата Сообщение от x_lab Посмотреть сообщение
Вы имя переменной другое используете
Да, я об этом и написал )
UPD: Хотя правильней, наверное, было бы удаление ссылок.
1
0 / 0 / 0
Регистрация: 17.03.2018
Сообщений: 108
15.08.2020, 12:21  [ТС]
Всем большое спасибо, суть ясна
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.08.2020, 12:21
Помогаю со студенческими работами здесь

Загрузка файла на сервер, добавление в базу данных ссылки и вывод ссылки из базы
Добрый вечер. Изучаю php, появился вопрос, а решить уже дня 3 не могу своими силами, поэтому прошу помощи. Есть форма, в которой вносятся...

Из таблицы базы MySql надо убрать "левые" ссылки, оставив ссылки домена my-site.ru
Здравствуйте. Взломана база интернет-магазина, мошенники регулярно ставят &quot;вечные&quot; ссылки на разные сайты и продают их владельцам...

Жесткие и мягкие ссылки
Дайте пожалуйста подробный ответ, что эт такое? Как можно проще в определении, если можно

Жесткие и символьные ссылки
Помогите с задачей. Необходимо создать дерево папок с ссылками и файлами на которые они ссылаются. Код с терминала : ...

Создать жесткие ссылки для файлов с заданными расширениями
Написать скрипт, находящий в заданном каталоге и всех его подкаталогах все файлы заданного расширения и создающий для каждого найденного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru