简体   繁体   English

致命错误:无法声明类 ProductFilterIterator,因为该名称已在

[英]Fatal error: Cannot declare class ProductFilterIterator, because the name is already in use in

With the help of class ProductFilterIterator want to get data借助 ProductFilterIterator 类想要获取数据

class ProductFilterIterator extends \FilterIterator
{
    protected $filter;
    protected $length;

    public function __construct(\Iterator $iterator,  $filter)
    {
        $this->filter = $filter;
        $this->length = -strlen($filter);
        parent::__construct($iterator);
    }

    public function accept() : bool
    {
        $current = $this->getInnerIterator()->current();
        return substr($current['Товар'], $this->length) == $this->filter;
    }
}


$iterator = (new \ArrayObject($obj['items']))->getIterator();
$filter = new ProductFilterIterator($iterator, $arPart['ARTICLE']);

foreach ($filter as $obj) {
   echo "<pre>";

I'm getting an error- Fatal error: Cannot declare class ProductFilterIterator, because the name is already in use in我收到一个错误 - 致命错误:无法声明类 ProductFilterIterator,因为该名称已在

Try using Namespace,尝试使用命名空间,

namespace Custom;
class ProductFilterIterator extends \FilterIterator
{
    protected $filter;
    protected $length;

    public function __construct(\Iterator $iterator,  $filter)
    {
        $this->filter = $filter;
        $this->length = -\strlen($filter);
        parent::__construct($iterator);
    }

    public function accept() : bool
    {
        $current = $this->getInnerIterator()->current();
        return \substr($current['Товар'], $this->length) == $this->filter;
    }
}


$iterator = (new \ArrayObject($obj['items']))->getIterator();
$filter = new ProductFilterIterator($iterator, $arPart['ARTICLE']);

foreach ($filter as $obj) {
   echo "<pre>";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 致命错误:无法声明类错误,因为该名称已被使用 - Fatal error: Cannot declare class Error, because the name is already in use 致命错误:无法声明类Locale,因为该名称已在中使用 - Fatal error: Cannot declare class Locale, because the name is already in use in 致命错误:无法声明 class InterdraftFactuursturen,因为该名称已在 - Fatal error: Cannot declare class InterdraftFactuursturen, because the name is already in use in PHP致命错误:无法声明类Stripe \\\\ Stripe,因为该名称已被使用 - PHP Fatal error: Cannot declare class Stripe\\Stripe, because the name is already in use 安装插件“致命错误:无法声明类 Stripe\\Stripe,因为名称已被使用” - Installing plugin "Fatal error: Cannot declare class Stripe\Stripe, because the name is already in use" 致命错误:无法声明 class Symfony\Component\HttpFoundation\Request,因为名称已在使用中 - Fatal error: Cannot declare class Symfony\Component\HttpFoundation\Request, because the name is already in use 致命错误:无法声明类 JSMin,因为该名称已在 opencart 3.0.3.7 中使用 - Fatal error: Cannot declare class JSMin, because the name is already in use in opencart 3.0.3.7 PHP 致命错误:无法声明类 Emogrifier,因为该名称已被使用 - PHP Fatal error: Cannot declare class Emogrifier, because the name is already in use PHP:如何捕获致命错误:无法声明 class [myclassname],因为该名称已在使用中 - PHP: How to catch Fatal error: Cannot declare class [myclassname], because the name is already in use 错误迁移:无法声明类 X,因为该名称已在使用中 - Error migrations: Cannot declare class X, because the name is already in use
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM