Use parsedown classes static



在我的代码中,我使用所有静态类,比如:Parsedown::text('text');,如果我试图这样使用它,它会给我一个错误消息"当不在对象上下文中时使用$this";,但我不知道如何像这样使用Parsedown,因为我只能像一样使用它

$Parsedown = new Parsedown();
echo $Parsedown->text('text');

功能文本代码

function text($text)
{
# make sure no definitions are set
$this->DefinitionData = array();
# standardize line breaks
$text = str_replace(array("rn", "r"), "n", $text);
# remove surrounding line breaks
$text = trim($text, "n");
# split text into lines
$lines = explode("n", $text);
# iterate through lines to identify blocks
$markup = $this->lines($lines);
# trim line breaks
$markup = trim($markup, "n");
return $markup;
}

如何使用parsedown静态?

Hi如果你想使用静态方法,你应该告诉php你的方法是静态的。例如,在方法定义中,你可以这样定义你的方法:

public static function text($text)
{
# make sure no definitions are set
self::DefinitionData = array();
# standardize line breaks
$text = str_replace(array("rn", "r"), "n", $text);
# remove surrounding line breaks
$text = trim($text, "n");
# split text into lines
$lines = explode("n", $text);
# iterate through lines to identify blocks
$markup = self::lines($lines);
# trim line breaks
$markup = trim($markup, "n");
return $markup;
}

正如您所看到的,我的用户是Self::而不是$this->因为在静态函数中,您无法访问初始化数据,所以您需要将公共变量定义为静态,也就是

然后你就可以像这个一样使用你的功能

Parsedown::text('text');

您可以使用带有instance()函数的Parsedown类static

echo Parsedown::instance()->text('Text'); 

实例功能代码:

static function instance($name = 'default')
{
if (isset(self::$instances[$name]))
{
return self::$instances[$name];
}
$instance = new static();
self::$instances[$name] = $instance;
return $instance;
}

相关内容

  • 没有找到相关文章

最新更新