0

オブジェクト内の要素のクローンを作成し、クローンに新しい名前を設定しようとしています。

class My_Obj{
 var $obj;
 var $obj_name;
 var clone;      //----int input to say how many clones are needed
 var clone_names;//----array input to make clone's name different from $obj
 function __construct( $args = '' ) {
   $defaults=array(
   /* codes to set up the default $obj */
  )
if ( $this->clone >0 ){
  for ( $i = 0; $i <= $this->clone; ++$i ){
   $clone_obj[$i]['name'] = /* need to loop through array $clone_name to fill this */

}
 }

/* other codes */
}

たとえば、$clone_names は array('cat', 'dog', 'bird') にすることができます。各クローンが名前を取得する限り、順序は関係ありません。これを行う方法を学びたいと思います。ありがとう!

4

1 に答える 1

0

私があなたの質問を正しく理解しているなら、あなたは配列を-から?で指定されたクローンの数までの$clone_obj値で埋めたいと思うでしょう。$clone_names$clone

その場合、これは機能する可能性があります(使用したサンプルクラスを書き直しました)。

class My_Obj {
    public $clone = 0;          //----int input to say how many clones are needed
    public $clone_names = array();  //----array input to make clone's name different from $obj
    private $clone_obj = array();   // array to store cloned names in

    function __construct($args = '') {
        for ($i=0; $i<$this->clone; $i++) {
            // copy the name in "$clone_names" to "$clone_obj", if it exists
        $this->clone_obj[$i] = array();
            $this->clone_obj[$i]['name'] = (isset($this->clone_names[$i]) ? $this->clone_names[$i] : '');
        }
    }
}
于 2012-07-16T13:37:36.610 に答える