0

私は関数を持ち、それを異なるパラメータで複数回使用したいと考えています。

例えば:

<?php
    class Test {
       var $test; 

      public function func($val) {
         $this->test = $val;
      }

      public function buildFunc() {
          if(!empty($this->test)) {
              $ret = $this->test;
          }
          return $ret;
      }
   }   

?>

次に、呼び出しページで:

$test = new Test;
$test->func("test1");
$test->func("test2");

echo $test->buildFunc();

次に、画面に test2 を出力します。そして、両方を印刷したいと思います。

4

7 に答える 7

3

オブジェクトのインスタンスを 2 つ作成します。

$test1 = new Test;
$test1->func("test1");
$test2 = new Test;
$test2->func("test2");

echo $test1->buildFunc();
echo $test2->buildFunc();

または、テストを配列にします。

class Test {
   var $test = array(); 

  public function func($val) {
     $this->test[] = $val;
  }

  public function buildFunc() {
      return print_r($this->test, true);
  }
}
于 2013-08-06T08:21:53.700 に答える
0

両方と言うときは、次のような意味ですか?

テスト1テスト2

それとも欲しいですか

テスト1 テスト2

最初のオプションでは、文字列を追加するだけです:

<?php
    class Test {
        var $test; 

        public function func($val) {
            $this->test = $test . $val; <-- add val to the end
        }

        public function buildFunc() {
            if(!empty($this->test)) {
                $ret = $this->test;
            }
            return $ret;
        }
    }   
?>

2番目の場合:

<?php
    class Test {
        var $test = array(); 

        public function func($val) {
            $this->test[] = $val; <-- add val to 
        }

        public function buildFunc() {
            if(!empty($this->test)) {
                foreach($test as $item){
                echo $item . "<br/>";
                }
            }
        }
    }   
?>
于 2013-08-06T08:26:53.700 に答える
0

変数を配列にプッシュする

<?php
    class Test {
       var $test; 

      public function __construct(){
        $this->test=array();//Declare $test as an array
      }
      public function func($val) {
       $this->test[]=$val;//Push to array
      }

      public function buildFunc() {
          if(!empty($this->test)) {
              $ret = implode(",",$this->test);
          }
          return $ret;
      }
   }   

?>
于 2013-08-06T08:24:43.570 に答える
0

まあ..あなたのコードは、あなたがやるように言っていることを正確に実行します。OOP がない場合の状況を考えてみましょう:

$str = 'test 1';
$str = 'test 2';

echo $str; //prints test 2

したがって、OOP の状況ではないかのように、それらを個別にエコーする必要があります。

$test = new Test;

$test->func("test1");
echo $test->buildFunc();

$test->func("test2");
echo $test->buildFunc();
于 2013-08-06T08:25:44.750 に答える
0

メソッドを呼び出すときに、テスト オブジェクトの 2 つのインスタンスを作成します。

$test = new Test;
$test->func("test1");
echo $test->buildFunc();

$test2 = new Test;
$test2->func("test2");
echo $test2->buildFunc();

2 つのインスタンスを作成したくない場合は、代わりに配列を作成する必要があります。

于 2013-08-06T08:25:46.073 に答える