Доступ к PHP-функции Markdown из класса - PullRequest
0 голосов
/ 01 декабря 2011

Я использую библиотеку Markdown для PHP от Michel Fortin. Установка проста и отлично работает следующим образом:

include_once "markdown.php";
$my_html = Markdown($my_text);

Однако у меня есть класс, в котором я хочу передать материал и пометить его, например, так:

class Test
{
    public function showMarkdown ($text)
    {
        return Markdown($text);
    }
}

Очевидно, мой класс намного больше, чем этот, но это то, к чему он сводится. В моем основном сценарии я делаю:

include_once "markdown.php";
$test = new Test();
echo $test->showMarkdown($text);

Это возвращает ошибку, говоря, что функция 'Markdown' не определена. Это кажется очевидным, потому что это не внутри класса, и я не использовал оператор области видимости. Но когда я помещаю include в свой класс и использую $this->Markdown или self::Markdown, функция все еще не определена. Я понял, что функция Markdown не может быть определена внутри другой функции.

Так, как я могу решить это? Мне нужно выполнить включение, которое загружает функцию Markdown (и остальную часть ее семейства), но я хочу использовать ее в своих классах.
Спасибо за ваши ответы / идеи.

Ответы [ 2 ]

1 голос
/ 01 декабря 2011

Ваш пример кода вызывает бесплатную функцию с именем Markdown (которая предположительно определена в markdown.php). Вам просто нужно поместить include в тот же файл, что и ваш Test класс.

После этого вы по-прежнему будете вызывать Markdown как свободную функцию, а не как экземплярный ($this->Markdown) или статический (self::Markdown) метод.

0 голосов
/ 01 декабря 2011

запись

function showMarkdown ($text)
in place of
public function showMarkdown ($text)

и

echo $test->showMarkdown("Hello World");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...