|
|
|
| Я создаю новый элемент массива вот так:
<
? $my_array[] = "new_element";
| Теперь мне надо узнать адрес вновь созданного элемента массива, чтобы передать его функции, которая будет с ним работать.
Как это сделать?
И есть ли с этими адресами особенности в ООП? | |
|
|
|
|
|
|
|
для: Eugene77
(12.07.2009 в 13:43)
| | Что значит адрес? | |
|
|
|
|
|
|
|
для: sim5
(12.07.2009 в 13:55)
| | Я потом вызываю функцию
$ok = work_with_the_element_of_massive(&$element);
Мне надо узнать $element, которая после & | |
|
|
|
|
|
|
|
для: Eugene77
(12.07.2009 в 13:43)
| | >Теперь мне надо узнать адрес вновь созданного элемента массива
$index = count($my_array)-1;
|
>И есть ли с этими адресами особенности в ООП?
не понятно | |
|
|
|
|
|
|
|
для: ddhvvn
(12.07.2009 в 14:04)
| | >>$my_array[] = "new_element";
>$index = count($my_array)-1;
в общем случае это не так... | |
|
|
|
|
|
|
|
для: Trianon
(12.07.2009 в 14:06)
| | >>>$my_array[] = "new_element";
>>$index = count($my_array)-1;
>
>в общем случае это не так...
Разве?
Это уже совсем интересно!
Ведь РНР - не многопроцессный язык. | |
|
|
|
|
|
|
|
для: ddhvvn
(12.07.2009 в 14:04)
| | >>Теперь мне надо узнать адрес вновь созданного элемента массива
>
$index = count($my_array)-1;
|
Это, конечно, здорово, но называется, если не ошибаюсь, индекс, а не адрес.
Массив у меня имеет развесистую древовидную структуру, поэтому надо целый ряд индексов, чтобы добраться до нужного листочка. А я хочу иметь прямую ссылку на этот листочек.
>>И есть ли с этими адресами особенности в ООП?
>не понятно
Если массив статический или принадлежит экземпляру класса, то не возникает ли косяков в этом случае? | |
|
|
|
|
|
|
|
для: Eugene77
(12.07.2009 в 14:11)
| | >Это, конечно, здорово, но называется, если не ошибаюсь, индекс, а не адрес.
Какой нафиг еще адрес в интерпретируемом языке? | |
|
|
|
|
|
|
|
для: Trianon
(12.07.2009 в 14:13)
| | >>Это, конечно, здорово, но называется, если не ошибаюсь, индекс, а не адрес.
>Какой нафиг еще адрес в интерпретируемом языке?
Не понимаю вашей грубости - обычный адрес.
Вот, например:
function echoo(&$b){
print_r($b);
}
$a["e"] = "el";
$b = &$a["e"];
echoo($b);
|
| |
|
|
|
|
|
|
|
для: Eugene77
(12.07.2009 в 14:23)
| | Это называется ссылкой. | |
|
|
|
|
|
|
|
для: Trianon
(12.07.2009 в 14:24)
| |
<?php
$fruits = array(1=>'apple', 'banana', 10=>'cranberry');
$fruits[] = "lemon"; end($fruits);
$var = &$fruits[key($fruits)];
print_r($fruits);
$var = 'melon';
print_r($fruits);
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(12.07.2009 в 14:31)
| | Спасибо! | |
|
|
|
|
|
|
|
для: Trianon
(12.07.2009 в 14:24)
| | Я считал, что ссылка и адрес - синонимы.
Извините, что задел этим ваши чувства, но меня сейчас больше интересует практическая сторона, о которой я спросил в начале темы.
Правильно я вас понимаю, что для получения ссылки, вы рекомендуете следующую формулу:
<?
$ref = &my_array[sizeof(my_array)-1];
|
?
Впрочем, нет, вы говорите,что если массив не является списком или в списке не все ключи, то это не сработает.
Как же тогда быть? | |
|
|
|
|
|
|
|
для: Eugene77
(12.07.2009 в 14:42)
| | я вроде привел пример.
Добавил элемент.
Получил ссылку на него.
Показал, что полученное - именно ссылка и именно на этот элемент.
Нет? | |
|
|
|
|
|
|
|
для: Trianon
(12.07.2009 в 14:44)
| | Я просто ответил, ещё не увидев, вашего исчерпывающего тему примера. | |
|
|
|
|
|
|
|
для: Eugene77
(12.07.2009 в 14:53)
| | end (array) - устанавливает внутренний указатель массива на последний элемент. | |
|
|
|
|
|
|
|
для: Trianon
(12.07.2009 в 14:44)
| | мб так легче?)
<?
$fruits = array(1=>'apple', 'banana', 10=>'cranberry');
$var = &$fruits[array_push($fruits, 'siski') - 1];
|
| |
|
|
|
|
|
|
|
для: sl1p
(12.07.2009 в 15:25)
| | нет.
Читайте первый пост. | |
|
|
|
|
|
|
|
для: Trianon
(12.07.2009 в 15:32)
| | ну это да но
$var[] = "value";
и
array_push($var, "value");
одно и тоже ведь. | |
|
|
|