1

簡単なことだと思ったのですが、ここで苦労しています...

これが私のコードです:

function xy() {
  $array['var1'] = x;
  $array['var2'] = y;
  echo $this->_z;
}

function _z($array) {
  $xy = $x.$y;
  return $xy;
}

では、なぜその一見単純なコードが機能しないのでしょうか。ビューでは配列を渡すことができ、配列のタイトルだけで変数にアクセスできることは知っていますが、この場合はなぜ機能しないのですか?

4

3 に答える 3

1

function _zビューではないので。で呼び出し$this->_z($array);ます。また、ビューはCodeIgniterによって処理され、変数が渡されます。これは、非ビューの場合と同じようには機能しません。PHPはそれを自動的に行いません。

ビューをロードするには、ビューファイルを作成し、/system/application/views/で呼び出します。$this->load->view('my_view_name', $array);

私はあなたの関数を次のように書き直します:

function xy()
{
    $x = "some value";
    $y = "some other value";

    echo $this->_z($x, $y);
}

function _z($a, $b)
{
    return $a.$b;
}
于 2010-06-15T12:13:57.690 に答える
1

PHPネイティブ関数extract()を使用して、必要なCIビューの動作を模倣できます(これがCIの実行方法です)

function xy() {
    $some_array = array(
        'foo' => 'Hello',
        'bar' => 'world'
    );
    echo $this->_z($some_array);
}

function _z($array) {
    extract ($array);
    $xy = "$foo $bar";
    return $xy;
}


xy();

参照: http: //php.net/manual/en/function.extract.php

于 2010-06-16T10:42:04.597 に答える
0

関数からプライベート関数への配列へのアクセスに関する最も良い説明の1つ。コードが私を助けてくれてありがとう

function _normal()

{$ arrayVariable="渡したい値";

echo $this->_toPrivateFuction($arrayVariable);

}

function _toPrivateFuction($ arrayVariable){

//または印刷して、目的の結果が得られるかどうかを確認します

print_r(arrayVariable);

//はいの場合、準備は完了です。

return $arrayVariable;

}

于 2021-09-16T11:51:35.060 に答える