配列ループの現在の位置内に、さらに 1 つ以上の要素が残っているかどうかを確認したい (要素をシフトしたりカウントしたりせずに):
public function build() {
$_string = 'CREATE TABLE IF NOT EXISTS `' . dbbuilder::$prefix . $this->name . '` (';
foreach( $this->rows as $key => $row ) {
if( $__string = $row->get_string() ) {
$_string .= $__string . ( next( $this->rows[$key] ) ? ', ' : '' );
}
}
$_string .= ') ENGINE=InnoDB DEFAULT CHARSET=utf8;';
$this->string = $_string;
}
出力:
[string:private] => CREATE TABLE IF NOT EXISTS `ecom_accounts` (`id` init(11) NOT NULL AUTO_INCREMENT`name` varchar(55) NOT NULL `email_address` varchar(255) NOT NULL `password` varchar(32) NOT NULL `multisite` varchar(5) NOT NULL `roll` int(4) NOT NULL DEFAULT '0') ENGINE=InnoDB DEFAULT CHARSET=utf8;
next() は機能すると思いましたkey
が、機能しません。また、数値ではなく文字列です。