【问题标题】:How to put elements in an object array in php?如何在php中将元素放入对象数组中?
【发布时间】:2022-01-15 21:04:19
【问题描述】:

如何在 php 中将新元素放入对象数组中,我编写了一些代码,但它不起作用。这是我的代码:

<?php
class DNA{

    private $RSID;
    private $CHROMOSOME;

    public function setRSID($RSID){
        return $this->RSID = $RSID;
    }

    public function setCHROMOSOME($CHROMOSOME){
        return $this->CHROMOSOME = $CHROMOSOME;
    }

    public function getRSID(){
      return $this->RSID;
    }
    public function getCHROMOSOME(){
      return $this->CHROMOSOME;
    }
}

$dna1[] = new DNA;

$dna1[0]->setRSID(1);
$dna1[0]->setCHROMOSOME(2);

$dna1[1]->setRSID(5);
$dna1[1]->setCHROMOSOME(3);

$dna1[2]->setRSID(7);
$dna1[2]->setCHROMOSOME(0);

?>

我不知道正确的语法,我试图在google中找到,但我没有找到一个好的解决方案。 有人可以帮助我吗?

【问题讨论】:

  • 您应该为该数组的每个项目创建实例并将其设置为$dna1[0] = new DNA; $dna1[0]-&gt;setRSID(1); $dna1[0]-&gt;setCHROMOSOME(2);
  • 大多数人可能会先创建对象,然后将其放入数组中。 $obj = new DNA; $dna[] = $obj;
  • 到底想做什么?创建对象并将方法结果放入数组中?
  • 是的。我想创建数组并放置值,例如:array_push($dna1->setRSID(), 1);

标签: php arrays object


【解决方案1】:

每次运行new DNA 时都会创建一个对象,因此如果您想拥有多个对象,则需要多次调用它。

在您的情况下,您只需运行一次:$dna1[] = new DNA; 创建一个对象,并将其添加到数组中。

要创建三个对象,您可以这样做:

// First create an empty array
$dna1 = [];

// Now add objects to it one by one
$dna1[0] = new DNA;
$dna1[0]->setRSID(1);
$dna1[0]->setCHROMOSOME(2);

$dna1[1] = new DNA;
$dna1[1]->setRSID(5);
$dna1[1]->setCHROMOSOME(3);

$dna1[2] = new DNA;
$dna1[2]->setRSID(7);
$dna1[2]->setCHROMOSOME(0);

【讨论】:

    【解决方案2】:

    你可以试试关联数组

    php.net/manual/en/language.types.array.php

    结果是这样的,

    $dna = new DNA();
    $dna_array[0]['rsid'] = $dna->setRSID(1);
    $dna_array[0]['chromsome'] = $dna->setCHROMOSOME(2);
    
    $dna_array[1]['rsid'] = $dna->setRSID(5);
    $dna_array[1]['chromsome'] = $dna->setCHROMOSOME(3);
    
    $dna_array[2]['rsid'] = $dna->setRSID(7);
    $dna_array[2]['chromsome'] = $dna->setCHROMOSOME(0);
    
    var_dump($dna_array);
    var_dump($dna_array[0]);
    var_dump($dna_array[1]);
    var_dump($dna_array[2]);
    var_dump($dna_array);
    var_dump($dna_array[0]['rsid']);
    var_dump($dna_array[0]['chromsome']);
    

    【讨论】:

      猜你喜欢
      • 2013-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-18
      • 2021-07-18
      • 1970-01-01
      • 1970-01-01
      • 2016-08-06
      相关资源
      最近更新 更多