|
|
|
| Здравствуйте,
Мой вопрос прост: возможно ли это? Возможно ли передать функцию как параметр?
Если да, то не подскажите ли Вы мне как это сделать?
Спасибо! | |
|
|
|
|
|
|
|
для: vitalycrash
(17.05.2007 в 21:04)
| | А зачем её передавать? Любая определённая функция имеет глобальную область видимости и её можно вызвать в любой части кода. В том числе и в теле другой функции. | |
|
|
|
|
|
|
|
для: Саня
(17.05.2007 в 21:30)
| | А всё же? | |
|
|
|
|
|
|
|
для: vitalycrash
(17.05.2007 в 21:35)
| | Не понятно что и для чего Вы хотите передавать..
<?php
$text = 'asdf';
echo substr($text, floor(strlen($text)/2));
// floor, strlen - функции...
?>
|
... код функции? | |
|
|
|
|
|
|
|
для: vitalycrash
(17.05.2007 в 21:35)
| | Что значит "передать функцию как параметр"?
если что-то типа этого, то нельзя:
<?
function my_cool_func($param1, $param2, cool_function()) {
//...
}
|
Можно передать имя функции в текстовом виде а потом вызвать через call_user_func().
function my_cool_func($param1, $param2, $function_name) {
call_user_func($function_name);
//...
}
|
| |
|
|
|
|
|
|
|
для: Саня
(17.05.2007 в 21:39)
| | <?
function my_cool_func($param1, $param2, cool_function()) {
//...
}
Как раз про это и был вопрос-Спасибо!
И за второе спасибо | |
|
|
|
|
|
|
|
для: vitalycrash
(17.05.2007 в 21:04)
| | Мда... может Вам на C# написать это дело?
;-) | |
|
|
|
|
|
|
|
для: mefestofel
(17.05.2007 в 21:44)
| | :) Вы про изображения? или про функции? Думаю не потяну! Да надо на ПХП | |
|
|
|
|
|
|
|
для: vitalycrash
(17.05.2007 в 21:58)
| | Просто в Си можно определить адрес резмещения функции в памяти и записать в переменную. Ну а потом вызывать:
#include <iostream.h>
void funt(void) {
cout << "Hello world!";
}
void main() {
void (*var)(void);
var = funct;
var();
}
| В результате на экран выведется "Hello world!".
В PHP, кстати, тоже можно так сделать:
<?php
function blah($text) {
print "<b>$text</b>";
}
$func = "blah";
$func("ё-моё");
| Браузер покажет "ё-моё". | |
|
|
|
|
|
|
|
для: Саня
(17.05.2007 в 22:11)
| | Ну да, только разговор шел о Шарпе...
Вы бы еще на 10 языках написали...
:-)
А так в целом правильно. | |
|
|
|
|
|
|
|
для: Саня
(17.05.2007 в 22:11)
| | чем такой способ отличается от create_function() | |
|
|
|
|
|
|
|
для: bronenos
(17.05.2007 в 22:18)
| | create_function() создаёт анонимную (lambda-style) функцию из переданных параметров и возвращает её уникальное имя. Чаще всего используется для создания функций обработчиков например при использовании array_walk(), usort() и т.д. Где-то я уже писал такой пример... второй метод корявый... | |
|
|
|