我正在使用一个两次调用同一类并引发错误的脚本:
Fatal: Cannot redeclare class urlConverter (/var/www/core/cache/includes/elements/modsnippet/23.include.cache.php:14)
我尝试将以下代码放入:
if( !class_exists( 'urlConverter', false ) )
{
$urlConverter = new urlConverter( $modx );
}
但是,我正在使用的 CMS 报告错误 500,并且无法在日志中看到它为什么会抛出该错误。
有谁知道如何检查该类是否已正确声明?
编辑:
我正在使用 CMS,因此该类位于代码段中,而不是实际文件中。这就是他们如何称呼他们的片段:
$data['viewonlinelink'] = $this->modx->runSnippet( 'urlConverter', array(
'action' => 'encrypt',
'string' => http_build_query( $string ) ) );
我需要再次调用它以获得不同的结果。
编辑2:
这是 urlConverter:
<?php
class urlConverter {
public $modx;
public function __construct( modX &$modx )
{
$this->modx =& $modx;
}
public function action( $scriptProperties )
{
return $this->$scriptProperties['action']( $scriptProperties['string'] );
}
private function encrypt( $str )
{
return $str;
}
private function decrypt( $str )
{
return $str;
}
}
}
$urlConverter = new urlConverter( $modx );
return $urlConverter->action( $scriptProperties );
现在从另一个脚本我调用以下内容:
$data['viewonlinelink'] = $this->modx->runSnippet( 'urlConverter', array(
'action' => 'encrypt',
'string' => http_build_query( $string ) ) );
$data['confirmonline'] = $this->modx->runSnippet( 'urlConverter', array(
'action' => 'encrypt',
'string' => http_build_query( $reversed ) ) );
它在我的 urlConverter 类中运行 encrypt 函数,我应该收到两个不同的结果。