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 回答
1

可能是您的意思是要存储所有值?然后使用一个数组:

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

  public function buildFunc() {
      return $this->test
  }

然后像处理数组一样处理结果。

于 2013-08-06T08:23:24.290 回答
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 回答
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;
        }
    }   
?>

对于第二个:

<?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

如何创建一个构造函数并初始化 test 的值并连接第二个值。

<?php
    class Test {
       var $test; 

        public function __construct($init){
            $this->test = $init;
        }

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

      public function buildFunc() {

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

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


echo $test->buildFunc();

?>
于 2013-08-06T08:39:37.983 回答