[英]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.