Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поменять местами две ссылки
 
 автор: Eugene77   (26.06.2012 в 10:57)   письмо автору
 
 

Функция получает ссылки на два массива (которые она должна перелопатить рекурсивно передвигаясь по вложенным подмассивам), при неком условии, ссылки на массивы надо поменять местами
Я делаю так:
<?
    
function bride2Arrays(&$bestArray, &$secondArray$qalityRatio) { 
            if(
$qalityRatio 1.0) { // Меняем местами ссылки на массивы
            
$tmp = &$bestArray;
            
$bestArray = &$secondArray;
            
$secondArray $tmp;
        }
...

Однако, что-то я не уверен, что так именно ссылки поменяются местами.
Как вы думаете? Ничего я не напутал?

  Ответить  
 
 автор: speedsoft   (26.06.2012 в 11:21)   письмо автору
 
   для: Eugene77   (26.06.2012 в 10:57)
 

потерто....

  Ответить  
 
 автор: cheops   (26.06.2012 в 15:55)   письмо автору
 
   для: Eugene77   (26.06.2012 в 10:57)
 

Собственно никаких неожиданностей тут не должно быть... а почему сомнение возникло, из-за &?

  Ответить  
 
 автор: Eugene77   (28.06.2012 в 09:42)   письмо автору
 
   для: cheops   (26.06.2012 в 15:55)
 

>Собственно никаких неожиданностей тут не должно быть... а почему сомнение возникло, из-за &?
Потому что РНР сам преобразовывает типы.
Когда я передаю временной переменной ссылку - возможно, она ссылку и получает,
но когда я присваиваю эту переменную следующей, то не будет ли присвоено содержимое по ссылке?

  Ответить  
 
 автор: cheops   (28.06.2012 в 11:52)   письмо автору
 
   для: Eugene77   (28.06.2012 в 09:42)
 

Преобразуются всегда только базовые типы, кроме того, в PHP все является ссылкой, даже переменная... просто язык написан на C++ и от этой особенности никуда не деться, оперирование идет не именованными и не именованными объектами памяти, а ссылками на них.

  Ответить  
 
 автор: Eugene77   (30.06.2012 в 18:22)   письмо автору
 
   для: cheops   (28.06.2012 в 11:52)
 

> кроме того, в PHP все является ссылкой, даже переменная... просто язык написан на C++ и от этой особенности никуда не деться, оперирование идет не именованными и не именованными объектами памяти, а ссылками на них.
Я вас не понимаю. Возможно это: "оперирование идет не именованными и не именованными объектами памяти" надо читать как "оперирование идет не именованными и неименованными объектами памяти" - но так или иначе, для меня всё одно - абракадабра.

Если, присваивались бы ссылки при присвоении по "=", то,
<?
$a 
1;
$b $a;
$c $a;
$b 2;
echo 
$c;

давало бы 2

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования