在我的代码中,我使用所有静态类,比如: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;
}