[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Псевдофункции
Unikom
Столкнулся с такой проблемой, нужны псевдофункции.
Сейчас обьясняю, о чём я говорю, на примере кода.
Есть класс
class mYClass{
function mYFunction ( $param1, $param2 ){
//что тут происходит не особо важно
}
}
//обращаемся к функции напрямую
mYClass::mYFunction ( 1, 'any' );
//а хочется так
mYClass::prm1prmany();
в обращении номер 2 будет выдана ошибка, что функции нет, и это естественно
ВОЗМОЖНО ЛИ сделать обработчик, который будет перехватывать неизвестные функции,
сравнивать их с шаблоном prm[значение1]prm[значение2] и обращаться к функции mYFunction?




Спустя 1 час, 54 минуты, 53 секунды (8.07.2007 - 17:56) vasa_c написал(а):
Возможно (в PHP5) http://www.php.net/manual/ru/language.oop5.magic.php
Такие вопросы обычно снимаются чтением документации.

Спустя 1 час, 30 минут, 13 секунд (8.07.2007 - 19:27) Unikom написал(а):
Цитата(vasa_c @ 8.7.2007, 20:56) [snapback]24329[/snapback]
Возможно (в PHP5) http://www.php.net/manual/ru/language.oop5.magic.php
Такие вопросы обычно снимаются чтением документации.

Спс. clapping.gif В доках искал, не нашел. blush.gif

Спустя 12 часов, 37 минут, 11 секунд (9.07.2007 - 08:04) Секстурист написал(а):
Цитата(vasa_c @ 8.7.2007, 18:56) [snapback]24329[/snapback]
Возможно (в PHP5) http://www.php.net/manual/ru/language.oop5.magic.php
Такие вопросы обычно снимаются чтением документации.


О, мне это тоже пригодится. Спасиб

Спустя 8 дней, 4 часа, 41 минута, 8 секунд (17.07.2007 - 12:45) An@nim написал(а):
mixed __call ( string имя, array аргументы )
С использованием этого метода, методы класса могут быть перегружены с целью выполнения произвольного кода, описанного в классе. В аргументе имя передаётся имя вызванного метода. Аргументы, которые были переданы методу при обращении, будут возвращены чере аргументы. Значение, возвращённое методом __call(), будет передано вызывающему оператору.

<?php
class Caller {
private $x = array(1, 2, 3);

function __call($m, $a) {
print "Вызван метод $m :\n";
var_dump($a);
return $this->x;
}
}

$foo = new Caller();
$a = $foo->test(1, "2", 3.4, true);
var_dump($a);
?>


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.