【问题标题】:How to delete object from arrayObject in php?如何从php中的arrayObject中删除对象?
【发布时间】:2017-08-23 16:24:42
【问题描述】:

我想从 php 中的 arrayObject 中删除对象,但在 deleteComputer 方法中显示此错误:“警告:非法偏移类型”,请帮助我,我从 php 开始:)

我已经:

       class ControllerList {

            private $computers;

            function __construct() {
                $this->computers= new ArrayObject();

            }

         public function addComputer($computer) {
             $this->computers->append($computer);
         }

         public function deleteComputer($computerNumber) {
             foreach ($this->computers as $value) {
                 if($value->getNumber() == computerNumber){
                    unset($this->computers[$value]);
                    echo 'Delete!!';
                 } else {
                    echo 'Don't delete!!';
                 }
               }
         }

        }

主文件:/

         $list = new ControllerList();

         $computer1 = new Computer();
         $computer1->setNumber(001);
         $computer1->setColor("Black");

         $computer2 = new Computer();
         $computer2->setNumber(002);
         $computer2->setColor("White");

         $list->addComputer($computer1);
         $list->addComputer($computer2);

         $list->deleteComputer(001);  --> error method

【问题讨论】:

  • computerNumber 应该是$computerNumber

标签: php arrays object unset


【解决方案1】:

$value 是一个对象,而不是数组索引。您需要将数组索引添加到foreach 循环中:

foreach ($this->computers as $i => $value) {
    if($value->getNumber() == $computerNumber){
        unset($this->computers[$i]);
        echo 'Delete!!';
    } else {
        echo 'Don't delete!!';
    }
}

【讨论】:

    【解决方案2】:

    与 Barmar 的解决方案一样,我将在此处解决您的转义问题。

     echo 'Don't delete!!';
    

    echo "Don't delete!!";
    

    echo 'Don\'t delete!!';
    

    更多关于转义字符串的信息可以在这里找到: Escaping quotation marks in PHP

    【讨论】:

      猜你喜欢
      • 2020-08-14
      • 2016-08-12
      • 1970-01-01
      • 2017-04-13
      • 2020-06-01
      • 1970-01-01
      • 2021-11-06
      • 2011-04-04
      • 2011-01-12
      相关资源
      最近更新 更多