Industrial Training




PHP Functions


The real power of PHP comes from its functions.


PHP has more than 1000 built-in functions, and in addition you can create your own custom functions.


PHP Built-in Functions


PHP has over 1000 built-in functions that can be called directly, from within a script, to perform a specific task.


Please check out our PHP reference for a complete overview of the PHP built-in functions.


PHP User Defined Functions


Besides the built-in PHP functions, it is possible to create your own functions.


  • A function is a block of statements that can be used repeatedly in a program.
  • A function will not execute automatically when a page loads.
  • A function will be executed by a call to the function.

Create a User Defined Function in PHP


A user-defined function declaration starts with the word function:


Syntax
function functionName() {
  code to be executed;
}

Tip: Give the function a name that reflects what the function does!
In the example below, we create a function named "writeMsg()". The opening curly brace ( { ) indicates the beginning of the function code, and the closing curly brace ( } ) indicates the end of the function. The function outputs "Hello world!". To call the function, just write its name followed by brackets ():


Example
< ?php
class="phpkeywordcolor" style="color:mediumblue">function writeMsg() {
  class="phpkeywordcolor" style="color:mediumblue">echo class="phpstringcolor" style="color:brown">"Hello world!";
class="phpnumbercolor" style="color:red"> }

writeMsg(); class="commentcolor" style="color:green">// call the function
class="phptagcolor" style="color:red">?>

PHP Function Arguments


Information can be passed to functions through arguments. An argument is just like a variable.
Arguments are specified after the function name, inside the parentheses. You can add as many arguments as you want, just separate them with a comma.
The following example has a function with one argument ($fname). When the familyName() function is called, we also pass along a name (e.g. Jani), and the name is used inside the function, which outputs several different first names, but an equal last name:


Example
< ?php
class="phpkeywordcolor" style="color:mediumblue">function familyName($fname) {
  class="phpkeywordcolor" style="color:mediumblue">echo class="phpstringcolor" style="color:brown">"$fname Refsnes.< br>";
class="phpnumbercolor" style="color:red"> }

familyName(class="phpstringcolor" style="color:brown">"Jani");
familyName(class="phpstringcolor" style="color:brown">"Hege");
class="phpnumbercolor" style="color:red"> familyName(class="phpstringcolor" style="color:brown">"Stale");
familyName(class="phpstringcolor" style="color:brown">"Kai Jim");
familyName(class="phpstringcolor" style="color:brown">"Borge");
class="phptagcolor" style="color:red">?>

The following example has a function with two arguments ($fname and $year):
Example
< ?php
class="phpkeywordcolor" style="color:mediumblue">function familyName($fname, $year) {
  class="phpkeywordcolor" style="color:mediumblue">echo class="phpstringcolor" style="color:brown">"$fname Refsnes. Born in $year < br>";
}

familyName(class="phpstringcolor" style="color:brown">"Hege", class="phpstringcolor" style="color:brown">"1975");
class="phpnumbercolor" style="color:red"> familyName(class="phpstringcolor" style="color:brown">"Stale", class="phpstringcolor" style="color:brown">"1978");
familyName(class="phpstringcolor" style="color:brown">"Kai Jim", class="phpstringcolor" style="color:brown">"1983");
class="phptagcolor" style="color:red">?>

PHP is a Loosely Typed Language


In the example above, notice that we did not have to tell PHP which data type the variable is.
PHP automatically associates a data type to the variable, depending on its value. Since the data types are not set in a strict sense, you can do things like adding a string to an integer without causing an error.
In PHP 7, type declarations were added. This gives us an option to specify the expected data type when declaring a function, and by adding the strict declaration, it will throw a "Fatal Error" if the data type mismatches.
In the following example we try to send both a number and a string to the function without using strict:


Example
< ?php
class="phpkeywordcolor" style="color:mediumblue">function addNumbers(int $a, int $b) {
  class="phpkeywordcolor" style="color:mediumblue">return $a class="phpnumbercolor" style="color:red"> + $b;
}
class="phpnumbercolor" style="color:red"> class="phpkeywordcolor" style="color:mediumblue">echo addNumbers(class="phpnumbercolor" style="color:red">5, 
class="phpstringcolor" style="color:brown">"5 days"); 
class="commentcolor" style="color:green">// since strict is NOT enabled "5 days" is changed to int(5), and it will return 10
class="phptagcolor" style="color:red">?>

To specify strict we need to set declare(strict_types=1);. This must be on the very first line of the PHP file.
In the following example we try to send both a number and a string to the function, but here we have added the strict declaration:


Example
< ?php class="phpkeywordcolor" style="color:mediumblue">declare(strict_types=class="phpnumbercolor" style="color:red">1); class="commentcolor" style="color:green">// strict requirement

class="phpkeywordcolor" style="color:mediumblue">function class="phpnumbercolor" style="color:red"> addNumbers(int $a, int $b) {
  class="phpkeywordcolor" style="color:mediumblue">return $a + $b;
}
class="phpkeywordcolor" style="color:mediumblue">echo addNumbers(class="phpnumbercolor" style="color:red">5, class="phpstringcolor" style="color:brown">"5 days"); 
class="commentcolor" style="color:green">// since strict is enabled and "5 days" is not an integer, an error will be thrown
class="phptagcolor" style="color:red">?>

PHP Default Argument Value


The following example shows how to use a default parameter. If we call the function setHeight() without arguments it takes the default value as argument:


Example
< ?php class="phpkeywordcolor" style="color:mediumblue">declare(strict_types=class="phpnumbercolor" style="color:red">1); class="commentcolor" style="color:green">// strict requirement
class="phpkeywordcolor" style="color:mediumblue">function setHeight(int $minheight = class="phpnumbercolor" style="color:red">50) {
  class="phpkeywordcolor" style="color:mediumblue">echo class="phpstringcolor" style="color:brown">"The height is : $minheight < br>";
}

setHeight(class="phpnumbercolor" style="color:red">350);
setHeight(); class="commentcolor" style="color:green">// will use the default value of 50
setHeight(class="phpnumbercolor" style="color:red">135);
setHeight(class="phpnumbercolor" style="color:red">80);
class="phptagcolor" style="color:red">?>

PHP Functions - Returning values


To let a function return a value, use the return statement:


Example
< ?php class="phpkeywordcolor" style="color:mediumblue">declare(strict_types=class="phpnumbercolor" style="color:red">1); class="commentcolor" style="color:green">// strict requirement
class="phpkeywordcolor" style="color:mediumblue">function sum(int $x, class="phpnumbercolor" style="color:red"> int $y) {
  $z = $x + $y;
  class="phpkeywordcolor" style="color:mediumblue">return $z;
}

class="phpnumbercolor" style="color:red"> class="phpkeywordcolor" style="color:mediumblue">echo class="phpstringcolor" style="color:brown">"5 + 10 = " 
. sum(class="phpnumbercolor" style="color:red">5, class="phpnumbercolor" style="color:red">10) . class="phpstringcolor" style="color:brown">"< br>";
class="phpkeywordcolor" style="color:mediumblue">echo class="phpstringcolor" style="color:brown">"7 + 13 = " . sum(class="phpnumbercolor" style="color:red">7, 
class="phpnumbercolor" style="color:red">13) . class="phpstringcolor" style="color:brown">"< br>";
class="phpkeywordcolor" style="color:mediumblue">echo class="phpstringcolor" style="color:brown">"2 + 4 = " . sum(class="phpnumbercolor" style="color:red">2, 
class="phpnumbercolor" style="color:red">4);
class="phptagcolor" style="color:red">?>

PHP Return Type Declarations


PHP 7 also supports Type Declarations for the return statement. Like with the type declaration for function arguments, by enabling the strict requirement, it will throw a "Fatal Error" on a type mismatch.
To declare a type for the function return, add a colon ( : ) and the type right before the opening curly ( { )bracket when declaring the function.
In the following example we specify the return type for the function:


Example
< ?php class="phpkeywordcolor" style="color:mediumblue">declare(strict_types=class="phpnumbercolor" style="color:red">1); class="commentcolor" style="color:green">// strict requirement
class="phpkeywordcolor" style="color:mediumblue">function addNumbers(float class="phpnumbercolor" style="color:red"> $a, float $b) : float {
  class="phpkeywordcolor" style="color:mediumblue">return $a + $b;
}
class="phpkeywordcolor" style="color:mediumblue">echo addNumbers(class="phpnumbercolor" 
style="color:red">1.2, class="phpnumbercolor" style="color:red">5.2);class="phpnumbercolor" style="color:red"> 
class="phptagcolor" style="color:red">?>

You can specify a different return type, than the argument types, but make sure the return is the correct type:


Example
< ?php class="phpkeywordcolor" style="color:mediumblue">declare(strict_types=class="phpnumbercolor" style="color:red">1); class="commentcolor" style="color:green">// strict requirement
class="phpkeywordcolor" style="color:mediumblue">function addNumbers(float class="phpnumbercolor" style="color:red"> $a, float $b) : int {
  class="phpkeywordcolor" style="color:mediumblue">return (int)($a + $b);
}
class="phpnumbercolor" style="color:red"> class="phpkeywordcolor" 
style="color:mediumblue">echo addNumbers(class="phpnumbercolor" style="color:red">1.2, class="phpnumbercolor" style="color:red">5.2); 
class="phptagcolor" style="color:red">?>

Passing Arguments by Reference


In PHP, arguments are usually passed by value, which means that a copy of the value is used in the function and the variable that was passed into the function cannot be changed.
When a function argument is passed by reference, changes to the argument also change the variable that was passed in. To turn a function argument into a reference, the & operator is used:


Example

Use a pass-by-reference argument to update a variable:


< ?php
class="phpkeywordcolor" style="color:mediumblue">function add_five(&$value) {
  $value += class="phpnumbercolor" style="color:red">5;
}

$num class="phpnumbercolor" style="color:red"> = class="phpnumbercolor" style="color:red">2;
add_five($num);
class="phpnumbercolor" style="color:red"> class="phpkeywordcolor" style="color:mediumblue">echo $num;
class="phptagcolor" style="color:red">?>



Hi I am Pluto.