2013-11-25 2 views
-1

Как я могу вызвать другой метод/функцию в том же файле контроллера?Функция внутреннего контроллера вызова Joomla

Например: controller.php

class MyController extends JControllerLegacy 
{ 
    function test() { 
     $var = otherfunction(); 
     echo $var; 
    } 
    function othermethod() { 
     return 'something'; 
    } 
} 

Я получаю сообщение об ошибке в браузере. Неустранимая ошибка: «Звонок на неопределенную функцию othermethod()».

Я был бы рад получить помощь ... Извините за мой плохой английский (;

ответ

1

Для вызова метода в том же классе можно использовать this .И вызвать функцию вам необходимо включить файл, . определение функции

class MyController extends JControllerLegacy 
{ 
    function test() { 
     //include_once file_has_otherfunction_definition.php 
     //$var = otherfunction(); 
     $var = $this->othermethod(); 
     echo $var; 
    } 
    function othermethod() { 
     return 'something'; 
    } 
} 
+0

Большое спасибо Irfan :) – user3033136

0

в плоском программирования PHP вы можете вызвать функцию только по имени функции, как:

otherfunction(); 

но если proramming Object-о (например, код, который вы вставляете), вы должны использовать $ this-> functionName/ для вызова другой функции. Поэтому функция тестирования() должен стать, как это:

function test() { 
    $var = **$this->otherfunction();** 
    echo $var; 

} для получения дополнительной информации о объектно-ориентированного PHP см this

+0

Большое спасибо mohsenkw ... хороший сайт, квалифицированные пользователи, быстрые ответы! мне нравится :) – user3033136

0

Вы не зовем контроллер JOOMLA properlly.

здесь синтаксис: класс component_nameControllerController_Name { }

например: Класс virtuemartControllercort расширяет JController { } здесь VirtueMart это имя компонента и Cort является controller.Controller указывает на то, что это контроллер.

Смежные вопросы