Improve the Table library
diff --git a/system/libraries/Table.php b/system/libraries/Table.php
index 8d0e11a..fb410e9 100644
--- a/system/libraries/Table.php
+++ b/system/libraries/Table.php
@@ -1,13 +1,13 @@
-<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
+<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 /**
  * CodeIgniter
  *
  * An open source application development framework for PHP 5.1.6 or newer
  *
  * NOTICE OF LICENSE
- * 
+ *
  * Licensed under the Open Software License version 3.0
- * 
+ *
  * This source file is subject to the Open Software License (OSL 3.0) that is
  * bundled with this package in the files license.txt / license.rst.  It is
  * also available through the world wide web at this URL:
@@ -40,14 +40,14 @@
  */
 class CI_Table {
 
-	var $rows				= array();
-	var $heading			= array();
-	var $auto_heading		= TRUE;
-	var $caption			= NULL;
-	var $template			= NULL;
-	var $newline			= "\n";
-	var $empty_cells		= "";
-	var	$function			= FALSE;
+	public $rows			= array();
+	public $heading			= array();
+	public $auto_heading		= TRUE;
+	public $caption			= NULL;
+	public $template		= NULL;
+	public $newline			= "\n";
+	public $empty_cells		= '';
+	public $function		= FALSE;
 
 	public function __construct()
 	{
@@ -63,7 +63,7 @@
 	 * @param	array
 	 * @return	void
 	 */
-	function set_template($template)
+	public function set_template($template)
 	{
 		if ( ! is_array($template))
 		{
@@ -84,7 +84,7 @@
 	 * @param	mixed
 	 * @return	void
 	 */
-	function set_heading()
+	public function set_heading()
 	{
 		$args = func_get_args();
 		$this->heading = $this->_prep_args($args);
@@ -103,9 +103,9 @@
 	 * @param	int
 	 * @return	void
 	 */
-	function make_columns($array = array(), $col_limit = 0)
+	public function make_columns($array = array(), $col_limit = 0)
 	{
-		if ( ! is_array($array) OR count($array) == 0)
+		if ( ! is_array($array) OR count($array) === 0)
 		{
 			return FALSE;
 		}
@@ -120,7 +120,7 @@
 		}
 
 		$new = array();
-		while (count($array) > 0)
+		do
 		{
 			$temp = array_splice($array, 0, $col_limit);
 
@@ -134,6 +134,7 @@
 
 			$new[] = $temp;
 		}
+		while (count($array) > 0);
 
 		return $new;
 	}
@@ -149,7 +150,7 @@
 	 * @param	mixed
 	 * @return	void
 	 */
-	function set_empty($value)
+	public function set_empty($value)
 	{
 		$this->empty_cells = $value;
 	}
@@ -165,7 +166,7 @@
 	 * @param	mixed
 	 * @return	void
 	 */
-	function add_row()
+	public function add_row()
 	{
 		$args = func_get_args();
 		$this->rows[] = $this->_prep_args($args);
@@ -178,16 +179,16 @@
 	 *
 	 * Ensures a standard associative array format for all cell data
 	 *
-	 * @access	public
+	 * @access	private
 	 * @param	type
 	 * @return	type
 	 */
-	function _prep_args($args)
+	private function _prep_args($args)
 	{
 		// If there is no $args[0], skip this and treat as an associative array
 		// This can happen if there is only a single key, for example this is passed to table->generate
 		// array(array('foo'=>'bar'))
-		if (isset($args[0]) AND (count($args) == 1 && is_array($args[0])))
+		if (isset($args[0]) AND (count($args) === 1 && is_array($args[0])))
 		{
 			// args sent as indexed array
 			if ( ! isset($args[0]['data']))
@@ -228,7 +229,7 @@
 	 * @param	string
 	 * @return	void
 	 */
-	function set_caption($caption)
+	public function set_caption($caption)
 	{
 		$this->caption = $caption;
 	}
@@ -242,7 +243,7 @@
 	 * @param	mixed
 	 * @return	string
 	 */
-	function generate($table_data = NULL)
+	public function generate($table_data = NULL)
 	{
 		// The table data can optionally be passed to this function
 		// either as a database result object or an array
@@ -254,13 +255,13 @@
 			}
 			elseif (is_array($table_data))
 			{
-				$set_heading = (count($this->heading) == 0 AND $this->auto_heading == FALSE) ? FALSE : TRUE;
+				$set_heading = (count($this->heading) === 0 AND $this->auto_heading == FALSE) ? FALSE : TRUE;
 				$this->_set_from_array($table_data, $set_heading);
 			}
 		}
 
 		// Is there anything to display?  No?  Smite them!
-		if (count($this->heading) == 0 AND count($this->rows) == 0)
+		if (count($this->heading) === 0 AND count($this->rows) === 0)
 		{
 			return 'Undefined table data';
 		}
@@ -273,24 +274,18 @@
 
 		// Build the table!
 
-		$out = $this->template['table_open'];
-		$out .= $this->newline;
+		$out = $this->template['table_open'].$this->newline;
 
 		// Add any caption here
 		if ($this->caption)
 		{
-			$out .= $this->newline;
-			$out .= '<caption>' . $this->caption . '</caption>';
-			$out .= $this->newline;
+			$out .= $this->newline.'<caption>'.$this->caption.'</caption>'.$this->newline;
 		}
 
 		// Is there a table heading to display?
 		if (count($this->heading) > 0)
 		{
-			$out .= $this->template['thead_open'];
-			$out .= $this->newline;
-			$out .= $this->template['heading_row_start'];
-			$out .= $this->newline;
+			$out .= $this->template['thead_open'].$this->newline.$this->template['heading_row_start'].$this->newline;
 
 			foreach ($this->heading as $heading)
 			{
@@ -304,22 +299,16 @@
 					}
 				}
 
-				$out .= $temp;
-				$out .= isset($heading['data']) ? $heading['data'] : '';
-				$out .= $this->template['heading_cell_end'];
+				$out .= $temp.(isset($heading['data']) ? $heading['data'] : '').$this->template['heading_cell_end'];
 			}
 
-			$out .= $this->template['heading_row_end'];
-			$out .= $this->newline;
-			$out .= $this->template['thead_close'];
-			$out .= $this->newline;
+			$out .= $this->template['heading_row_end'].$this->newline.$this->template['thead_close'].$this->newline;
 		}
 
 		// Build the table rows
 		if (count($this->rows) > 0)
 		{
-			$out .= $this->template['tbody_open'];
-			$out .= $this->newline;
+			$out .= $this->template['tbody_open'].$this->newline;
 
 			$i = 1;
 			foreach ($this->rows as $row)
@@ -332,8 +321,7 @@
 				// We use modulus to alternate the row colors
 				$name = (fmod($i++, 2)) ? '' : 'alt_';
 
-				$out .= $this->template['row_'.$name.'start'];
-				$out .= $this->newline;
+				$out .= $this->template['row_'.$name.'start'].$this->newline;
 
 				foreach ($row as $cell)
 				{
@@ -341,7 +329,7 @@
 
 					foreach ($cell as $key => $val)
 					{
-						if ($key != 'data')
+						if ($key !== 'data')
 						{
 							$temp = str_replace('<td', "<td $key='$val'", $temp);
 						}
@@ -369,12 +357,10 @@
 					$out .= $this->template['cell_'.$name.'end'];
 				}
 
-				$out .= $this->template['row_'.$name.'end'];
-				$out .= $this->newline;
+				$out .= $this->template['row_'.$name.'end'].$this->newline;
 			}
 
-			$out .= $this->template['tbody_close'];
-			$out .= $this->newline;
+			$out .= $this->template['tbody_close'].$this->newline;
 		}
 
 		$out .= $this->template['table_close'];
@@ -393,7 +379,7 @@
 	 * @access	public
 	 * @return	void
 	 */
-	function clear()
+	public function clear()
 	{
 		$this->rows				= array();
 		$this->heading			= array();
@@ -405,11 +391,11 @@
 	/**
 	 * Set table data from a database result object
 	 *
-	 * @access	public
+	 * @access	private
 	 * @param	object
 	 * @return	void
 	 */
-	function _set_from_object($query)
+	private function _set_from_object($query)
 	{
 		if ( ! is_object($query))
 		{
@@ -417,7 +403,7 @@
 		}
 
 		// First generate the headings from the table column names
-		if (count($this->heading) == 0)
+		if (count($this->heading) === 0)
 		{
 			if ( ! method_exists($query, 'list_fields'))
 			{
@@ -443,13 +429,13 @@
 	/**
 	 * Set table data from an array
 	 *
-	 * @access	public
+	 * @access	private
 	 * @param	array
 	 * @return	void
 	 */
-	function _set_from_array($data, $set_heading = TRUE)
+	private function _set_from_array($data, $set_heading = TRUE)
 	{
-		if ( ! is_array($data) OR count($data) == 0)
+		if ( ! is_array($data) OR count($data) === 0)
 		{
 			return FALSE;
 		}
@@ -458,7 +444,7 @@
 		foreach ($data as $row)
 		{
 			// If a heading hasn't already been set we'll use the first row of the array as the heading
-			if ($i == 0 AND count($data) > 1 AND count($this->heading) == 0 AND $set_heading == TRUE)
+			if ($i++ === 0 AND count($data) > 1 AND count($this->heading) === 0 AND $set_heading == TRUE)
 			{
 				$this->heading = $this->_prep_args($row);
 			}
@@ -466,8 +452,6 @@
 			{
 				$this->rows[] = $this->_prep_args($row);
 			}
-
-			$i++;
 		}
 	}
 
@@ -479,7 +463,7 @@
 	 * @access	private
 	 * @return	void
 	 */
-	function _compile_template()
+	private function _compile_template()
 	{
 		if ($this->template == NULL)
 		{
@@ -505,7 +489,7 @@
 	 * @access	private
 	 * @return	void
 	 */
-	function _default_template()
+	private function _default_template()
 	{
 		return  array (
 						'table_open'			=> '<table border="0" cellpadding="4" cellspacing="0">',
@@ -538,6 +522,5 @@
 
 }
 
-
 /* End of file Table.php */
 /* Location: ./system/libraries/Table.php */