簡體   English   中英

調用類內聯php的公共方法

[英]Call public method of class inline php

我有CHtmlPurifier類和purify公共方法。
這是一般用法:

<?php $obj = new CHtmlPurifier(); ?>
<?php echo $obj->purify($text); ?>

現在,我如何使用內聯的purify方法?!

當然我不能這樣使用:

<?php echo CHtmlPurifier::purify($text); ?>

因為purify不是靜態方法。

另一種方式我嘗試這個:

<?php echo (new CHtmlPurifier())->purify($text); ?>

但這不起作用。 (我在PHP 5.3中嘗試)

您是否有任何建議在沒有定義額外變量的情況下快速內聯使用?

如果您正在使用Yii,那么可以為此創建服務並在那里注冊CHtmlPurifier的實例。 http://www.yiiframework.com/doc-2.0/yii-di-servicelocator.html[YiiDI ]

如果不

你可以創建這樣的新類:

Class Registery
{
    public static $refs = [];

    public static function get($name)
    {
        if (!isset(self::$refs[$name])) {
            if (class_exists($name)) {
                self::$refs[$name] = new $name();
            } else {
                throw new \Exception('class not exists');
            }
        }

        return self::$refs[$name];
    }

}

你可以使用它:

<?php echo Registery::get('CHtmlPurifier')->purify($text); ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM