Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха информатор 3.1
Еще более удобное оповещение о флуде!

Краснодарское время: 24 Май, 2012, 02:41:00

Страниц: [1] 2 3 4
Печать
Автор Тема: Как узнать имя переменной, переданной в качестве аргумента ф-ии  (Прочитано 2883 раз)
0 Пользователей и 1 Гость смотрят эту тему.
adw0rd    ↓ 
05 Ноябрь, 2009, 01:27:19
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

Пример:
PHP

 
function test ($name)
{
    // тут надо получить 'thisName'
}
 
test($thisName);
 

Рассматриваются любые варианты, типа Reflection, backtrace и т.д.
 
зы. спасибо васяцу за debug_backtrace
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
NRG    ↓ 
05 Ноябрь, 2009, 01:28:43 , спустя 1 минуту 24 секунды
НЕ ХУЕТА! ХУЕТА!

Headshot!MultiKill!
Группа: нинзя

Карма: 777
Сообщений: 4700
Сила слова: 16.81

а сделать метод типа getType($var) и внем провяреть типа is_int ит.д.  ....
Записан

Буратино дрочил, дрочил и сгорел
Java и JavaScript это абсолютно разные вещи !!!
Господа, вы хуйня.
девушки краснели, отворачивались но порнуху продолжали смотреть
adw0rd    ↓ 
05 Ноябрь, 2009, 01:30:20 , спустя 1 минуту 37 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

Если передается не имя переменной, а например так:
PHP
test("ага-ага");
то, тогда либо false, none, null, да хоть исключение пусть будет... я это все обработаю )
Спустя 38 секунд добавил
а сделать метод типа getType($var) и внем провяреть типа is_int ит.д.  ....
эээ, мне не тип надо, а имя  переменной
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
NRG    ↓ 
05 Ноябрь, 2009, 01:31:27 , спустя 1 минуту 7 секунд
НЕ ХУЕТА! ХУЕТА!

Headshot!MultiKill!
Группа: нинзя

Карма: 777
Сообщений: 4700
Сила слова: 16.81

ну впринципе еще можно и gettype
Спустя 23 секунды добавил
ой, сорри не так понял...
Записан

Буратино дрочил, дрочил и сгорел
Java и JavaScript это абсолютно разные вещи !!!
Господа, вы хуйня.
девушки краснели, отворачивались но порнуху продолжали смотреть
adw0rd    ↓ 
05 Ноябрь, 2009, 01:37:25 , спустя 5 минут 58 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

Для чего мне это:
 
Это обертка для шаблонов, например:
 
PHP

 
function assign($name, $value) {
    $tpl->assign($name, $value);
}
 
assign('users', $users);
 
 

Я хочу привести к виду:
 
PHP
function assign($var) {
    $name = // тут определяем имя переданной переменной (в моем примере тут будет 'users')
    $tpl->assign($name, $var);
}
 
assign($users);
Спустя 2 минуты 8 секунд добавил
Если там будет не переменная передаваться, то:
PHP

function assign($var) {
    $name = // тут определяем имя переданной переменной
    $name = is_string($name) ? $name : 'default';
    $tpl->assign($name, $var);
}
 
assign('бла-бла-бла');
 
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
phpdude    ↓ 
05 Ноябрь, 2009, 01:43:04 , спустя 5 минут 39 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: 20784
Сила слова: 1.66

adw0rd, не хочу показаться хвастуном, но я сразу понял что для шаблонизатора))
 
а чем тебе
 
$tpl->users = $users->getAll();
 
не нравится? имхо куда практичнее)
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
adw0rd    ↓ 
05 Ноябрь, 2009, 01:50:58 , спустя 7 минут 54 секунды
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

Ладно, дело обстоит так: я пишу небольшой фреймворк на PHP, похожий по структуре на Django. Мне Django очень нравиться, но проект надо писать на PHP, ибо Python на хостингах нема, а те кому уйдут копии моего фреймоврка это разнообразные ресселеры с небольшими познаниями в программировании, в основном сеошники и прочие манимейкеры. А мне бы хотелось по возможности использовать удобство джанги, поэтому у меня такая вот структура, где есть файл вьюхи, каталог моделей, файл сеттингса и урлов.
 
У меня есть вьюха:
PHP

function products ()
{
    $products = array(1,2,3);
    PanjoTemplate::draw('templates/products.tpl', $products);
}
 

Из названия понятно, что фреймворк назвал я "Panjo"
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
phpdude    ↓ 
05 Ноябрь, 2009, 01:52:32 , спустя 1 минуту 34 секунды
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: 20784
Сила слова: 1.66

adw0rd, фреймворк на статических классах!
Спустя 10 секунд добавил
2:хх в сторону статики!
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
adw0rd    ↓ 
05 Ноябрь, 2009, 01:57:54 , спустя 5 минут 22 секунды
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

А в шаблоне обрабатывается так:
Text

<h1>{{ products.title }}</h1>
<div>{{ products.description }}</div>
 
Спустя 1 минуту 11 секунд добавил

adw0rd, фреймворк на статических классах!
Спустя 10 секунд добавил
2:хх в сторону статики!
чего? Где надо, я юзаю обжекты, а где надо на статике... например в $products будут объекты
Спустя 47 секунд добавил
Ну так что, есть идеи по поводу получения имени переменной?
Спустя 2 минуты 14 секунд добавил
2005 год
Из PHP узнать имена переменных нельзя, но можно их количество и значения.
http://xpoint.ru/forums/programming/PHP/thread/29749.xhtml
думаете фигня?
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
phpdude    ↓ 
05 Ноябрь, 2009, 01:58:03 , спустя 9 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: 20784
Сила слова: 1.66

adw0rd, а чем бектрейс не нравится? я не понял. там же это можно вроде получить ... эм.
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
adw0rd    ↓ 
05 Ноябрь, 2009, 01:59:23 , спустя 1 минуту 20 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67


adw0rd, а чем бектрейс не нравится? я не понял. там же это можно вроде получить ... эм.
я его попробовал, но имени там нет, к сожалению :/
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
phpdude    ↓ 
05 Ноябрь, 2009, 02:09:24 , спустя 10 минут 1 секунду
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: 20784
Сила слова: 1.66

как нет? оО
 
Hi: friend
array(2) {
[0]=>
array(4) {
    ["file"] => string(10) "/tmp/a.php"
    ["line"] => int(10)
    ["function"] => string(6) "a_test"
    ["args"]=>
    array(1) {
      [0] => &string(6) "friend"
    }
}
[1]=>
array(4) {
    ["file"] => string(10) "/tmp/b.php"
    ["line"] => int(2)
    ["args"] =>
    array(1) {
      [0] => string(10) "/tmp/a.php"
    }
    ["function"] => string(12) "include_once"
  }
}

 
PHP
<?php
// filename: /tmp/a.php
 
function a_test($str)
{
    echo "\nHi: $str";
    var_dump(debug_backtrace());
}
 
a_test('friend');
?>
 
<?php
// filename: /tmp/b.php
include_once '/tmp/a.php';
?>
 

это судя из документации
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
adw0rd    ↓ 
05 Ноябрь, 2009, 02:34:03 , спустя 24 минуты 39 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

phpdude, это значение, а не имя переменной
Спустя 23 секунды добавил
я и так могу получить его, без бектрейса )
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
phpdude    ↓ 
05 Ноябрь, 2009, 02:42:14 , спустя 8 минут 11 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: д-о-х-у-я!
Сила слова: 1.66

adw0rd, ебать я лох .. сори что сбил с толку)
 
как всегда "хочется получить желаемое за действительное"
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
adw0rd    ↓ 
05 Ноябрь, 2009, 03:01:05 , спустя 18 минут 51 секунду
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67


adw0rd, ебать я лох .. сори что сбил с толку)
 
как всегда "хочется получить желаемое за действительное"
бывает ))
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
Страниц: [1] 2 3 4
Печать
 

Перейти в:  

Этот топик скрыли: mario