function (&$arg) {
ob_start();
var_dump($arg);
$NeedParse = ob_get_clean();
//и распарсить NeedParse
}
Форум → Программирование → PHP для идиотов → Как узнать имя переменной, переданной в качестве аргумента ф-ии
Как узнать имя переменной, переданной в качестве аргумента ф-ии
Страницы: ← Предыдущая страница • Следующая страница →
-
16 марта 2010 г. 0:46, спустя 1 час 16 минут 46 секунд
а типаСпустя 30 сек.да, по ходу тупость ))Спустя 46 сек.да, я еще чёто натупил с этим постом, вклейка в коде ГЫГЫ -
16 марта 2010 г. 6:01, спустя 5 часов 15 минут 51 секунду
function test($param1, $param2)
{}
$funcRefl = new ReflectionFunction('test');
$params = $funcRefl->getParameters();
foreach ($params as $param)
{
echo $param->getName() . "\n";
}
// result:
// param1
// param2Work, buy, consume, die -
16 марта 2010 г. 6:36, спустя 34 минуты 41 секунду
Naaayh, ПОСЛАННОЙ, а не объявленойСапожник без сапог -
16 марта 2010 г. 7:52, спустя 1 час 15 минут 26 секунд
phpdude, чувствую, можно смело объявить конкурс или battle -
16 марта 2010 г. 12:21, спустя 4 часа 29 минут 18 секунд
можно принять батл и послать конкурсιιlllιlllι унц-унц -
16 марта 2010 г. 13:41, спустя 1 час 19 минут 55 секунд
да, что-то ступил, мыж итак знаем как переменные называются ))))Work, buy, consume, die -
-
-
5 января 2012 г. 7:54, спустя 2 часа 9 минут 54 секунды
Все не читал, может быть где-то уже написали. Нашел такое:<?php
function hello(&$var, $scope=0) {
$old = $var;
if (($key = array_search($var = 'unique'.rand().'value', !$scope ? $GLOBALS : $scope)) && $var = $old) return $key;
}
$name = 'HELLO';
echo hello($name); // nameСпустя 66 сек.Ну естественно нужно переделать если будет юзаться в классе -
5 января 2012 г. 18:07, спустя 10 часов 12 минут 36 секунд
решить сабжевую задачу конечно можно, но это дикое усложнение и костыли
я для шаблонизаторов делаю так:
class MyController {
function foo(){
$name = 'vasya';
$age = 27;
return compact('name', 'age');
}
}
движок автоматом передаёт результат функции контроллера во вьюху, в шаблонизатор. принято, что всегда возвращаются массивы
механизм похож на рельсы. ну, наверное это не джанго, но зато это ближе всего к именованным аргументамне всё полезно, что в swap полезло -
11 января 2012 г. 0:04, спустя 5 дней 5 часов 57 минут
самому нужно было недавно, использовал глобалс. а еще придумал кое-что.. как вам такой код:<?php
function test ($name)
{
// тут надо получить 'thisName'
list($name, $varname) = explode("*", $name);
return $varname; //thisName
}
$thisName = 'lorem ipsum';
test($thisName.'*thisName'); //передаем имя в аргументе))
?>
я только начинающий кодер. -
11 января 2012 г. 0:44, спустя 39 минут 57 секунд
как вам такой код
уебанство
а что если $thisName == 'lorem*ipsum' ?
а что если надо передать аргументом не строку?не всё полезно, что в swap полезло -
11 января 2012 г. 1:20, спустя 36 минут 13 секунд
от части согласен с вами, от части нет. приведенный код как пример той мысли и расчитывалось только на строковый тип.
а для чего-то рабочего и гибкого можно, конечно, дописать чтобы работало не только со строками и т.п.
1-е. решается очень просто:
<?php
function test ($name)
{
// тут надо получить 'thisName'
$arrvars = explode("*", $name);
$varname = end($arrvars);
return $varname; //thisName
}
$thisName = 'lorem*ipsum';
test($thisName.'*thisName'); //передаем имя
?>
2-е. тоже просто. например, вместо конкатенации можно передавать доп. аргумент.
<?php
function test ($name, $varName)
{
// тут надо получить 'thisName'
$var = $varName;
return $var; //thisName
}
$thisName = 'lorem*ipsum';
test($thisName, 'thisName');
?>
и всего делов. :)Спустя 66 сек.упс, забыл в пхп тэги поместить код. -
11 января 2012 г. 1:29, спустя 8 минут 56 секунд
waff, зачем это всё? я же написал как решается эта задачане всё полезно, что в swap полезло -
11 января 2012 г. 2:24, спустя 55 минут 23 секунды
да делать нехуй. недавно писал шаблонизатор нужно было такое. а ваше решение как работает? объясните, если не влом, как оно решает задачу? весь прикол в том что движок автоматом передаёт результат функции? непонятно короче.
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!