私は次のクラスを持っています:
class countries {
protected $_table = 'countries';
public function __construct() {
$this->mysqli = new mysqli(db_host, db_user, db_pass, db_name);
}
public function dropdown_menu() {
$query = "SELECT * FROM $this->_table ORDER BY name ASC";
$result = $this->mysqli->query($query) or die ($this->mysqli->error);
while ($row = $result->fetch_array(MYSQLI_ASSOC))
{
$results[] = array('iso' => $row['iso'], 'name' => $row['name'], 'flag' => $row['flag']);
}
}
}
クラス外で使用した場合:
$countries = new countries();
$countries->dropdown_menu();
$results = $countries;
foreach($results as $xresult)
{
$template->newBlock('dropdown_menu');
$template->assign('iso', $xresult['iso']);
}
これはうまくいきません。私が使うとき
foreach($results as $xresult)
{
$template->newBlock('dropdown_menu');
$template->assign('iso', $xresult['iso']);
}
dropdown_menu 関数のクラス内で機能します。
クラス外で print_r ($results) を実行すると、次の結果が得られます。
countries Object ( [_table:protected] => countries [mysqli] => mysqli Object ( ) )
クラス外で $results を使用するにはどうすればよいですか?