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

Форум PHP

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

 

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

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

тема: Работа со ссылками в PHP
 
 автор: Витос   (10.03.2007 в 01:52)   письмо автору
 
 

Читаю Котерова и пытаюсь делать задачи, вот практиковался...


$A=array('a' => 'aaa', 'b' => 'VITEK');
$b=&$A['b']; // теперь $b — то же, что и элемент с индексом 'b' массива
$b="Виктор"; // на самом деле $A['b']=Виктор;
Unset($b); // Удаляю переменную $b
echo $A['b']; // Разве не должно у меня вывести VITEK??


Ну вот в первой строке есть у мення массив, во второй присваиваю переменной $b элемент с массива 'b' , в третей чуть изманяю переменную, в 4 я ее УДАЛЯЮ, да? Т.е. ее нет, В конце вывожу, НО...у меня выводит "Виктор" вместо ожидаемого мною Vitek! Ребята, розьясните, что к чему, что то я не могу понять почему выводит именно Виктор, ведб я удалил переменную((

   
 
 автор: Витос   (10.03.2007 в 02:03)   письмо автору
 
   для: Витос   (10.03.2007 в 01:52)
 

2)) Я хотел к переменной добавить число.. написал так:


$a=20;
echo "$a+10";


Но выводит "20+10". А как сделать, чтоб 30 выводило?

   
 
 автор: ШИМ   (10.03.2007 в 02:19)   письмо автору
 
   для: Витос   (10.03.2007 в 02:03)
 

$rez=$a+10;
echo "$rez";

   
 
 автор: ШИМ   (10.03.2007 в 02:20)   письмо автору
 
   для: ШИМ   (10.03.2007 в 02:19)
 


$a=$a+10;
echo "$a";

или

$a+=10;
echo "$a";

   
 
 автор: Витос   (10.03.2007 в 02:30)   письмо автору
 
   для: ШИМ   (10.03.2007 в 02:20)
 

Я еще так решил эту задачу)) Заше написать..


$a=20;
$b=30;   
$c=strval($a+$b);
echo "$c";


Но все равно спасибо за поиощь. Второй вопрос исчерпан))

   
 
 автор: bronenos   (10.03.2007 в 07:52)   письмо автору
 
   для: Витос   (10.03.2007 в 02:30)
 

насчет массива
вы там сделали ссылку а не копию, потому и удалилось

   
 
 автор: cheops   (10.03.2007 в 13:03)   письмо автору
 
   для: Витос   (10.03.2007 в 01:52)
 

Вот так попробуйте
<?php
  $A
=array('a' => 'aaa''b' => 'VITEK'); 
  
$b=&$A['b']; // теперь $b - то же, что и элемент с индексом 'b' массива 
  
$b="Виктор"// на самом деле $A['b']=Виктор; 
  
echo $A['b']; 
?>

   
 
 автор: Витос   (10.03.2007 в 14:27)   письмо автору
 
   для: cheops   (10.03.2007 в 13:03)
 

cheops, ну это я понимаю, я вот что хотел, как работает функция удаления:


<?php
$A
=array('a' => 'aaa''b' => 'VITEK'); 
$b=&$A['b']; // теперь $b — то же, что и элемент с индексом 'b' массива 
$b="Виктор"// на самом деле $A['b']=Виктор; 
Unset($b); // Удаляю переменную $b после этой строки ведь должно получаться, что $b и не существовало? 
echo $A['b']; // А так как не существовало $b то это должно вывести VITEK, а не Виктор...
?>


Почему она не удаляеться?? Вот.

   
 
 автор: Киналь   (10.03.2007 в 14:50)   письмо автору
 
   для: Витос   (10.03.2007 в 14:27)
 

Дело в строчке

$b=&$A['b'];


Знак & (амперсанд) означает, что вы передаете в переменную $b не значение $A['b'], а ссылку на $A['b'] То есть всякое изменение $b будет отражаться на $A['b']. Чтобы этого не происходило. уберите знак &.

   
Rambler's Top100
вверх

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