w3resource

PHP classes - Exercises, Practice, Solution

PHP classes [7 exercises with solution]

1. Write a simple PHP class which displays the following string. Go to the editor

'MyClass class has initialized !'
Click me to see the solution

2. Write a simple PHP class which displays an introductory message like "Hello All, I am Scott", where "Scott" is an argument value of the method within the class. Go to the editor
Click me to see the solution

3. Write a PHP class that calculates the factorial of an integer. Go to the editor
Click me to see the solution

4. Write a PHP class that sorts an ordered integer array with the help of sort() function.
Go to the editor

Sample array : array(11, -2, 4, 35, 0, 8, -9)
Output : Array ( [0] => -9 [1] => -2 [2] => 0 [3] => 4 [4] => 8 [5] => 11 [6] => 35 )
Click me to see the solution

5. Calculate the difference between two dates using PHP OOP approach. Go to the editor
Sample Dates : 1981-11-03, 2013-09-04
Expected Result : Difference : 31 years, 10 months, 1 days
Click me to see the solution

6. Write a PHP Calculator class which will accept two values as arguments, then add them, subtract them, multiply them together, or divide them on request. Go to the editor
For example :
$mycalc = new MyCalculator( 12, 6);
echo $mycalc- > add(); // Displays 18
echo $mycalc- > multiply(); // Displays 72
Click me to see the solution

7. Write a PHP script to convert a string to Date and DateTime. Go to the editor
Sample Date : '12-08-2004'
Expected Output : 2004-12-08
Note : PHP considers '/' to mean m/d/Y format and '-' to mean d-m-Y format.
Click me to see the solution

PHP Code Editor:

More to Come !

Do not submit any solution of the above exercises at here, if you want to contribute go to the appropriate exercise page.



PHP: Tips of the Day

$GLOBALS: An associative array containing references to all variables which are currently defined in the global scope of the script. The variable names are the keys of the array

Example:

<?php
$myGlobal = "global"; // declare variable outside of scope
function test()
{
$myLocal = "local"; // declare variable inside of scope
 // both variables are printed
 var_dump($myLocal);
 var_dump($GLOBALS["myGlobal"]);
}
test(); // run function
// only $myGlobal is printed since $myLocal is not globally scoped
 
var_dump($myLocal);
var_dump($myGlobal); 
?>

Output:

string(5) "local"
string(6) "global"
NULL
string(6) "global"

In the above example $myLocal is not displayed the second time because it is declared inside the test() function and then destroyed after the function is closed.

Becoming global

To remedy this there are two options.

Option one: global keyword

function test()
{
 global $myLocal;
 $myLocal = "local";
 var_dump($myLocal);
 var_dump($GLOBALS["myGlobal"]);
}

The global keyword is a prefix on a variable that forces it to be part of the global scope.

Note that you cannot assign a value to a variable in the same statement as the global keyword. Hence, why I had to assign a value underneath. (It is possible if you remove new lines and spaces but I don't think it is neat. global $myLocal; $myLocal = "local").

Option two: $GLOBALS array

function test()
{
 $GLOBALS["myLocal"] = "local";
 $myLocal = $GLOBALS["myLocal"];
 var_dump($myLocal);
 var_dump($GLOBALS["myGlobal"]);
}

In this example I reassigned $myLocal the value of $GLOBAL["myLocal"] since I find it easier writing a variable name rather than the associative array.