Home Python C Language C ++ HTML 5 CSS Javascript Java Kotlin SQL DJango Bootstrap React.js R C# PHP ASP.Net Numpy Dart Pandas Digital Marketing

Learn PHP Functions



PHP 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.
The main use of functions is to reuse code: Define the code once, and use it many times.



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.




PHP User Defined Functions


A user-defined function is a function that you can create to perform a specific task.
You can also pass parameters (variables) to a user-defined function.
Besides the built-in PHP functions, it is possible to create your own functions.
This can be really helpful when you need to perform a frequently needed task in your script.



Create a Function

A user-defined function declaration starts with the keyword function , followed by the name of the function:


Example

            function myMessage() {
                echo "Hello world!";
              }

Note: A function name must start with a letter or an underscore. Function names are NOT case-sensitive.


Call a Function


To call the function, just write its name followed by parentheses ():


Example

             function myMessage() {
                echo "Hello world!";
              }
              
              myMessage();

In our example, we create a function named myMessage(). 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!".


Passing Arguments to a Function


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


         function familyName($fname) {
            echo "$fname Refsnes.<br>";
          }
          
          familyName("Jani");
          familyName("Hege");
          familyName("Stale");
          familyName("Kai Jim");
          familyName("Borge");

The following example has a function with two arguments ($fname, $year):


Example


         function familyName($fname, $year) {
            echo "$fname Refsnes. Born in $year <br>";
          }
          
          familyName("Hege", "1975");
          familyName("Stale", "1978");
          familyName("Kai Jim", "1983");

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


         function setHeight($minheight = 50) {
            echo "The height is : $minheight <br>";
          }
          
          setHeight(350);
          setHeight(); // will use the default value of 50
          setHeight(135);
          setHeight(80);


PHP Functions - Returning values


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


Example

         function sum($x, $y) {
            $z = $x + $y;
            return $z;
          }
          
          echo "5 + 10 = " . sum(5, 10) . "<br>";
          echo "7 + 13 = " . sum(7, 13) . "<br>";
          echo "2 + 4 = " . sum(2, 4);


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

          function add_five(&$value) {
            $value += 5;
          }
          
          $num = 2;
          add_five($num);
          echo $num;



Variable Number of Arguments


By using the ... operator in front of the function parameter, the function accepts an unknown number of arguments. This is also called a variadic function.
The variadic function argument becomes an array.


Example

            function sumMyNumbers(...$x) {
              $n = 0;
              $len = count($x);
              for($i = 0; $i < $len; $i++) {
                $n += $x[$i];
              }
              return $n;
            }
            
            $a = sumMyNumbers(5, 2, 6, 2, 7, 7);
            echo $a;

You can only have one argument with variable length, and it has to be the last argument.


Example

          function myFamily($lastname, ...$firstname) {
            txt = "";
            $len = count($firstname);
            for($i = 0; $i < $len; $i++) {
              $txt = $txt."Hi, $firstname[$i] $lastname.<br>";
            }
            return $txt;
          }
          
          $a = myFamily("Doe", "Jane", "John", "Joey");
          echo $a;

If the variadic argument is not the last argument, you will get an error.


Example

Having the ... operator on the first of two arguments, will raise an error:


          function myFamily(...$firstname, $lastname) {
            $txt = "";
            $len = count($firstname);
            for($i = 0; $i < $len; $i++) {
              $txt = $txt."Hi, $firstname[$i] $lastname.<br>";
            }
            return $txt;
          }
          
          $a = myFamily("Doe", "Jane", "John", "Joey");
          echo $a;



PHP is a Loosely Typed Language


In the examples 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

         function addNumbers(int $a, int $b) {
            return $a + $b;
          }
          echo addNumbers(5, "5 days");
          // since strict is NOT enabled "5 days" is changed to int(5), and it will return 10

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 declare(strict_types=1); // strict requirement

            function addNumbers(int $a, int $b) {
              return $a + $b;
            }
            echo addNumbers(5, "5 days");
            // since strict is enabled and "5 days" is not an integer, an error will be thrown
            ?>

The strict declaration forces things to be used in the intended way.




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 declare(strict_types=1); // strict requirement
            function addNumbers(float $a, float $b) : float {
              return $a + $b;
            }
            echo addNumbers(1.2, 5.2);
            ?>

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

Example

           <?php declare(strict_types=1); // strict requirement
            function addNumbers(float $a, float $b) : int {
              return (int)($a + $b);
            }
            echo addNumbers(1.2, 5.2);

Advertisement





Q3 Schools : India


Online Complier

HTML 5

Python

java

C++

C

JavaScript

Website Development

HTML

CSS

JavaScript

Python

SQL

Campus Learning

C

C#

java