1. Funkcje są globalne.
2. PHP < 5.3 nie ma funkcji lambda czyli nie zrobisz:
<?php
$funkcja = function() { echo 'dump'; }; ?>
Edit: bez nazwy funkcji
Wszelkie podobne cuda wiążą się z evalem i create_function a to ZUO w najczystszej postaci z najmroczniejszych zakamarków programistycznego ociemnienia.
Jeśli już upierasz się by zrobić to tak jak koledzy powyżej pisali:
-przekazujesz nazwę funkcji jako string:
<?php
$form->setSubmitFunction('submit');
//A w klasie:
class Form {
...
private $submit_function;
public function setSubmitFunction($name) {
$this->submit_function = $name;
}
public function onSubmit() {
$this->submit_function();
}
}
?>