PHP

Posts about the server side scripting language PHP

PHP Logo

Rounding A Number To Nearest The Thousand In PHP

6th January 2008 - 4 minutes read time

I have previously talked about rounding numbers in PHP, but what if you wanted to round the number to the nearest thousand?

It is possible to do this with the native round() function in PHP by using a negative number as the second parameter. The round() function has two parameters, the first is the number to be rounded and the second is the number of places to round the number to, also known as the precision. The default for round() is to round the number to the nearest whole number, by using positive numbers as the second parameter you can set the number of decimal places to round the number to. Giving a negative number as the second parameter will allow you to round the number to the nearest full number. For example, to round a number to the nearest thousand you can put -3 as the precision, this will change the number 12,345 into 12000.

PHP Logo

Generate A Radio Button Group With PHP

1st January 2008 - 2 minutes read time

Here is a function to create a group of radio buttons in a HTML form. The three parameters are:

  1. $name : The name of the radio group.
  2. $options : An associative array of items to be included in the group of radio buttons.
  3. $default : The default value of the radio buttons.

function createRadio($name,$options,$default=''){
  $name = htmlentities($name);
  $html = '';
  foreach($options as $value=>$label){
    $value = htmlentities($value);
    $html .= '<input type="radio" ';
    if($value == $default){
      $html .= ' checked="checked" ';
    };
    $html .= ' name="'.$name.'" value="'.$value.'" />'.$label.'<br />'."\n";
  };
  return $html;
}

You can call the function in the following way:

PHP Logo

Avoiding If Statement Typos In PHP

30th December 2007 - 3 minutes read time

It is very easy to break a program with a simple typo. Instead of typing == when comparing two values you type = and actually assign a variable. This is an easy way to introduce a bug as you will not always notice it until your program doesn't work. There is an easy way of avoiding this.

By using the following syntax:


if(100 == $score){ }

Instead of the usual format:

It is very easy to break a program with a simple typo. Instead of typing == when comparing two values you type = and actually assign a variable. This is an easy way to introduce a bug as you will not always notice it until your program doesn't work. There is an easy way of avoiding this.

By using the following syntax:


if(100 == $score){ }

Instead of the usual format:

PHP Logo

Odd and Even Numbers in PHP

25th December 2007 - 3 minutes read time

To find if a number is odd or even you can use one of two operators.

The modulo operator (% in PHP) can be used to calculate the remainder of the value divided by 2. This gives a value of 0 for even numbers and a value of 1 for odd numbers. This can be used in an if statement as 0 will equate to false and 1 will equate to true.


$value = 10;
if ($value % 2) {
  echo '$value is odd';
} else {
  echo '$value is even';
}

The second method is to use the & (AND) operator with the number 1. This will perform a bitwise calculation on the number and 1, returning 0 if the number is even and 1 if the number is false. So using the same if statement logic as before we can write.

PHP Logo

Rounding And Displaying Numbers In PHP

24th December 2007 - 4 minutes read time

To round a number in PHP you can use one of three functions, these are round(), ceil() and floor(). All of these functions take number as the input and will round the value depending on the function used.

To round to the closest integer use the round() function.

round(4.4);  // returns 4

To round down to the nearest whole number use the floor() function.

floor(4.4);  // returns 4

To round up to the nearest whole number use the ceil() function.

PHP Logo

Does A String In PHP Contain A Number?

24th December 2007 - 3 minutes read time

The is_numeric() function in PHP can be used to see if a number contained in a string is numeric. The function returns true is the variable can be parsed into a string, otherwise it returns false. Here are some examples:

is_numeric('five')  // returns false
is_numeric(123); // returns true
is_numeric('123'); //  returns true
is_numeric(-123); //  returns true
is_numeric('-123'); //  returns true
is_numeric('123.4'); //  returns true
is_numeric('1,234'); //  returns false

Notice that if your number has a thousand separator in it the function will return false. In this case you need to use the str_replace() function to strip out the commas before passing the value into is_numeric(0).

PHP Logo

Generate A Select Box For A HTML Form

21st December 2007 - 2 minutes read time

Here is a function to generate a select box for a HTML form. The three parameters are:

  1. $name : The name of the select, this will appear in the "name" attribute.
  2. $options : An associative array containing all of the options.
  3. $default : The option that will be selected as default.

function generateSelect($name,$options,$default=''){
  $html = '<select name="'.$name.'">';
  foreach ($options as $value => $label) {
    $html .= '<option value="' . $value . '">' . $label . '</option>';
  }
  $html .= '</select>';
  return $html;
}

You can call the function like this:


echo generateSelect('selectPreference',array('yes'=>'yes','no'=>'no'),'yes');

Which produces the following HTML as output:

PHP Logo

Printing Arrays Using print_r()

20th December 2007 - 3 minutes read time

When debugging PHP code the print_r can be useful if you want to know what an array or object contains. It will take any variable as input and will print off as much information as it can about that variable. The following code.


$array = array(1,34,6,2325,5,34,2);
echo "<pre>";
print_r($array);
echo "</pre>";

Will produce the following result.


Array
(
[0] => 1
[1] => 34
[2] => 6
[3] => 2325
[4] => 5
[5] => 34
[6] => 2
)

Notice the use of the pre tags. This is to allow the output to be properly formatted on screen, otherwise it looks messy. Of course you could just view source, but I find the formatted output easier on the eye. You could also write it out like this: