nic 发表于 2015-1-19 10:38:10

已删除

本帖最后由 nic 于 2015-1-22 11:19 编辑

aaaaaaa

阿呆 发表于 2015-1-19 15:36:28

nic 发表于 2015-1-19 15:12
我打包上传了 你看看怎么弄

不知道是不是你要的。


class Welcome extends CI_Controller {

    public function index() {
      $variable = array(
            'a' => '1',
            'b' => '2',
            'c' => '3',
            'd' => '4',
      );
      $this->load->library('text'); //第一次可行,第二次就失败
      foreach ($variable as $key => $value) {
            $data = array('key' => $key, 'value' => $value);
            $this->text->init($data);
            $temp = $this->text->function1();
            if($temp){
                var_dump($data);
                break;
            }
      }
    }
}


class Text {
    private $key;
    private $value;

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

    function init($data){
      if(!$data) return;
      $this->key = $data["key"];
      $this->value = $data["value"];
      echo $this->key . "<br/>";
      echo $this->value . "<br/>";
    }

    public function function1() {
      $key = $this->key;
      $value = $this->value;
      if($key == "d" && $value == "4") {
            return TRUE;
      } else {
            return FALSE;
      }
    }
}


输出:
a
1
b
2
c
3
d
4
array'key' => string 'd' (length=1)'value' => string '4' (length=1)


阿呆 发表于 2015-1-19 12:34:59

$this->load->library('bb');
foreach
$this->bb->init($data);
endforeach

Closer 发表于 2015-1-19 10:42:40

本帖最后由 Closer 于 2015-1-19 10:43 编辑

你想要做到甚麼樣的效果?
為何不考慮用 model ?

nic 发表于 2015-1-19 10:47:37

<?php
$variable = array(
        'a' => '1',
        'a' => '2',
        'a' => '3',
        'a' => '4',
);
foreach ($variable as $key => $value) {
        $data = array($key=>$value);
        $this->load->library('bb', $data);
        $temp = $this->bb->function();
        if($temp == "判断成立"){
                var_dump($data);
                break;
        }
}

Closer 发表于 2015-1-19 10:59:01

也許 library 有防止重複載入機制
你試著反過來把 foreach 放進你的 bb 做迴圈

nic 发表于 2015-1-19 11:12:29

Closer 发表于 2015-1-19 10:59
也許 library 有防止重複載入機制
你試著反過來把 foreach 放進你的 bb 做迴圈

- -怎么可能啊 我控制器靠这个东西判断 回来的值我还要用的 难道我把东西都塞进去library 然后等类返回给我值么- -

Closer 发表于 2015-1-19 11:21:01

nic 发表于 2015-1-19 11:12
- -怎么可能啊 我控制器靠这个东西判断 回来的值我还要用的 难道我把东西都塞进去library 然后等类返回给 ...

library 不像 model 是呼叫一次用一次
當你 library 載入之後,該方法(或類)都可以使用
你試想,你載入一個 bb 的 library
理所當然的這個方法都可以用 $this->bb 來讀取
當你有兩個 bb 呢?
怎麼判斷?

CI 要嘛只讀取第一次 library
要嘛只會獲取第一個 library

你只能換其他方式來處理
 

nic 发表于 2015-1-19 11:22:28

model不也是一样么- -难道你$this->load->model('a');就是$this->load->model('a');
$this->a->function1();
$this->load->model('a');
$this->a->function2():
?

Closer 发表于 2015-1-19 11:23:30

nic 发表于 2015-1-19 11:22
model不也是一样么- -难道你$this->load->model('a');就是

但 model 載入之後是調用裡面的方法
除非你的 library 也用類似的方式

nic 发表于 2015-1-19 11:24:54

- -可能我没说清楚 现在的问题只在于 调用library是传值进去构造函数 构造函数的值 其他方法用到的 这里只是做一个例子

Closer 发表于 2015-1-19 11:39:25

nic 发表于 2015-1-19 11:24
- -可能我没说清楚 现在的问题只在于 调用library是传值进去构造函数 构造函数的值 其他方法用到的 这里只 ...
你的問題和解答
我已經在六樓的地板給你了

我上述所指的 model
是指 $this->load->model('test');
這樣使用 $this->test->get_data('123');

而非
$this->load->model('test');
$this->test->get_data('123');
$this->load->model('test');
$this->test->get_data('123');

這樣的邏輯是錯誤的
因為系統不會知道你到底要哪一個 test (model)

同理 library 也是類似

 
页: [1] 2 3
查看完整版本: 已删除