Funkcje w widgecie

Witam forumowiczów,

Może ktoś się orientuje.

Jestem w widget’cie, a właściwie w widoku dla niego. Deklaruje funkcję i chcę jej użyć w dowolnym miejscu widoku. Dlaczego to nie działa? To mój widok:




<?php

function say()

	{

		echo "say";

	}

say();

?>



Dostaje błąd:

Cannot redeclare say() (previously declared in C:\xampp\htdocs\animals\widgets\views\glowna.php:10)

Widoki są renderowane wewnątrz metody tego widgetu - nie powinieneś tam deklarować funkcji w ten sposób bo same widoki mogą być ładowane kilkukrotnie w czasie działania aplikacji. Zadeklaruj metodę wewnątrz klasy widgetu albo korzystaj z domknięć:




$say = function () {

    echo 'say';

};


$say();



Dzięki wielkie. A kojarzysz może jak z poziomu widoku wywołać funkcje zdefiniowaną w widgecie (w klasie)? Próbowałem z $this ale nie działa…

Wywoływanie przez &#036;this-&gt;metoda() powinno działać.

Poszło statycznie, z $this->metoda() nie chce działać, bo this to widok w tym kontekscie chyba…

Dzięki za pomoc.