|
Тема
|
call_user_func със статик метод и параметър
|
|
Автор |
Bълk (умора няма) |
Публикувано | 12.08.05 01:43 |
|
значи имам следната простотия
class A{
function B($c,$d,$e)
}
искам да извикам този метод са параметри използвайки callback без да имам инстанс на класа. по цялата идея е call_user_func(array('a', 'b', array($c, $d, $e))) ама нищо не става. Забих се в сорсове на РНР и документация за предаване на параметри чак от 3ката ама стигнах до извода, че там е по-добре.
по причина бързодеъствие не искам да го правя с eval.
| |
Тема
|
Re: call_user_func със статик метод и параметър
[re: Bълk]
|
|
Автор |
phpGuru (член) |
Публикувано | 12.08.05 03:18 |
|
ми виж по-внимателно документацията :-)
http://bg2.php.net/manual/en/function.call-user-func.php
пише
Object methods may also be invoked statically using this function by passing array($objectname, $methodname) to the function parameter.
<?php
class myclass {
function say_hello()
{
echo "Hello!\n";
}
}
$classname = "myclass";
call_user_func(array($classname, 'say_hello'));
?>
не съм го пробвал, ма требе да работи :-) и другото писал си ги с малки букви, па си ги кръстил с големи :-)
| |
Тема
|
Re: call_user_func със статик метод и параметър
[re: phpGuru]
|
|
Автор |
Bълk (умора няма) |
Публикувано | 12.08.05 03:30 |
|
то това е ясно ... ама параметри?
от примера си баца като слънце, ама нещо пробвам да го измисля и с предаване на параметри ама май не правя като хората
Редактирано от Bълk на 12.08.05 03:32.
| |
Тема
|
Re: call_user_func със статик метод и параметър
[re: Bълk]
|
|
Автор | Penguin (Нерегистриран) |
Публикувано | 12.08.05 09:03 |
|
Това е работещ пример от моя програма, която вика статичен метод с параметри.
if (($error = call_user_func (
array (__CLASS__, "check_" . $one_check ["type"]),
$string,
$one_check
)) !== null) {
...
}
| |
Тема
|
Re: call_user_func със статик метод и параметър
[re: Bълk]
|
|
Автор |
Blake (извънземен) |
Публикувано | 12.08.05 09:53 |
|
значи по принцип съм си играл доста с call_user_func-работите - значи трябва ти
call_user_func_array(array(&$object, "method_name"), array(param1, param2, ..., paramN))
- пробвай така, трябва да стане... за това да стане без инстанс - не знам дали ще се получи, но ако имаш инстанс - работи без грешка...
ся гледам в юзър нотес, че без инстанс трябва да стане с array("class_name", "method_name") вместо array(&$object, "method_name"), ама не съм пробвал подобна комбинация...
Just a genius
| |
Тема
|
Re: call_user_func със статик метод и параметър
[re: Bълk]
|
|
Автор |
phpGuru (член) |
Публикувано | 12.08.05 13:12 |
|
ми аз не виждам проблем ....
ceco@c92-100:~/tmp$ cat test_call_func.php
<?
class eho {
function beho($param) {
echo "eho - beho - $param\n";
}
}
call_user_func_array(array('eho', 'beho'), array('Вълчо'));
?>
ceco@c92-100:~/tmp$ php test_call_func.php
eho - beho - Вълчо
пробвах го с
PHP 4.3.10-15 (cli) (built: May 9 2005 08:54:56)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
също и с
PHP 5.1.0-dev (cli) (built: Jul 28 2005 12:37:11)
Copyright (c) 1997-2005 The PHP Group
Zend Engine v2.1.0-dev, Copyright (c) 1998-2004 Zend Technologies
| |
Тема
|
Re: call_user_func със статик метод и параметър
[re: phpGuru]
|
|
Автор |
Bълk (умора няма) |
Публикувано | 12.08.05 15:29 |
|
мда, точно този вариант съм пропуснал. благодаря за упътване, са ще напъна нещата.
| |
|
|
|
|