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

Форум PHP

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

 

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

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

тема: Как узнать имя передаваемой в функцию переменной?
 
 автор: art.k   (18.10.2006 в 16:01)   письмо автору
 
 

Как узнать имя передаваемой переменной?
Ситуация: Есть некая функция, например (сейчас придумаю...), которая выводит содержание объекта.

<?php
function _sys_print($obj){
     print 
'<pre class="sys">';
     if (
is_string($obj)) {
          print 
$obj;
     }else{
          
print_r($obj);
     }
     print 
"</pre>";
}
?>


Мы ее вызываем...

<?php
$names
= array('Кирилл''Фёдор''Дмитрий');
_sys_print($names)
?>


Вопрос: как внутри функции узнать имя переменной которая была передана (В нашем слечае это - $names)?

   
 
 автор: Poison   (18.10.2006 в 16:31)   письмо автору
 
   для: art.k   (18.10.2006 в 16:01)
 

Некак=)) Тока содержание! Непойму зачем тебе ето???

   
 
 автор: Trianon   (18.10.2006 в 16:43)   письмо автору
 
   для: art.k   (18.10.2006 в 16:01)
 

и что она должна будет вывести при вызове
<?php 
_sys_print
(array('Кирилл''Фёдор''Дмитрий')) 
?>
?
:)))

   
 
 автор: art.k   (18.10.2006 в 17:43)   письмо автору
 
   для: Trianon   (18.10.2006 в 16:43)
 

Объясню. Функция которую я привел в примере, она очень удобно работает.
Ситуация: Пишем код...
Задача: В неком месте кода, нам надо проверить содержание массива.
Ваши действия? Ну, например мы можем ественным образом применить функцию,
print_r($имя_массива);
и получить необходимый, результат. Но при этом методе "нормально" отображаться этот массив будет только в коде HTML (я имею ввиду табуляцию и перенос строк). Для нормального "отображения" вам прийдеться дописать перед выводом еще и print '<pre>'; как минимум (более простого варианта я думаю не существует.). Хотя можно и разом совместить все в одну строку...

<?php
print '<pre>' print_r($имя_массива1) . '</pre>';
?>

Сколько на это уйдет времени? Не лень каждый раз писать нечто подобное, или лезть в код..
Решение: Гораздо проще один раз в самом корне программы подключить эту функцию. И в нужный момент просто вызвать ее...

<?php  
_sys_print
($имя_массива);
?>


Вы со мной согласны?

   
 
 автор: kasmanaft   (18.10.2006 в 18:01)   письмо автору
 
   для: art.k   (18.10.2006 в 17:43)
 

Согласны, практически :)
Но только я не пойму, зачем вам в функции узнавать, как "называется" массив?

<?
$arr 
= array('1','2','3');
function 
pre_print_r ($massiv)
{
    echo 
'<pre>';
    
print_r ($massiv); // не $arr
    
echo '</pre>';
}
pre_print_r ($arr);
?>

   
 
 автор: art.k   (18.10.2006 в 18:25)   письмо автору
 
   для: kasmanaft   (18.10.2006 в 18:01)
 

Просто зачастую я в одном месте вывожу значения двух тех и более массивов, для сверки например. И тогда былобы удобно выводить имя массива перед выводом его самого.

Содержание переменной: $names
(
[0] => Кирилл
[1] => Фёдор
[2] => Дмитрий
)

Содержание переменной: $names2
(
[0] => Ирина
[1] => Елена
[2] => Мария
)

   
 
 автор: art.k   (18.10.2006 в 18:26)   письмо автору
 
   для: kasmanaft   (18.10.2006 в 18:01)
 

Но передавать име переменной "в ручную" - нехочу...
Вот и спрашивал. Можно ли его узнать...

   
Rambler's Top100
вверх

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