Overview
PHP introduction : PHP stands for PHP Hypertext Preprocessor (while PHP originally stood for Personal Home Page).
PHP is an open source general-purpose server-side scripting language originally designed for Web development to produce dynamic Web pages. It is one of the first developed server-side scripting languages to be embedded into an HTML source document rather than calling an external file to process data. The code is interpreted by a Web server with a PHP processor module which generates the resulting Web page. (from Wikipedia)
How does PHP work
The server first reads the PHP file carefully in order to see if there are any tasks that need to be executed. Only after the server has done what it is supposed to do, the result is sent to the client. It is important to understand that the client only sees the result of the server’s work, not the actual instructions.
This means that if you click “view source” on a PHP page, you do not see the PHP codes – only basic HTML tags. Therefore, you cannot see how a PHP page is made by using “view source”.
Server on your PC
XAMPP is a server you can basically install on your PC in order to run/test PHP programs locally.
Link to XAMPP
XAMPP stands for Cross-Platform (X), Apache (A), MariaDB (M), PHP (P) and Perl (P).
PHP in a HTML file
You can put the PHP code in any place of your HTML file in the <body> section.
<!DOCTYPE html>
<html>
<head>
<title>put a relevant title here</title>
</head>
<body>
<?php echo "hello world"; ?>
</body>
</html>
PHP in an external file
You have the possibility to put your PHP code in an external file.
Let’s name the external file “example.php”
example.php contains <?php echo "hello world"; ?>
You can execute this PHP file in calling it from any place (in the body) of a HTML file like this :
<!DOCTYPE html>
<html>
<head>
<title>put a relevant title here</title>
</head>
<body>
<?php include("example.php"); ?>
</body>
</html>
Comments
<?php
/* this is
a
multi line
comment
*/
// this is a single line comment
?>
Variables
Introduction (from w3schools)
In PHP, a variable does not need to be declared before adding a value to it. A variable is created the moment you first assign a value to it.
Rules :
– Variables in PHP starts with a $ sign, followed by the name of the variable
– The variable name must begin with a letter or the underscore character
– A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9, and _ )
– A variable name should not contain spaces
– Variable names are case sensitive (y and Y are two different variables)
The life cycle
Before a variable is used, it has no existence. It is unset. So isset() is false.
$var;
$checked = isset($var);
The first time a variable is used, it’s automatically created. It also receives a type according to the assignment. Now isset() is true.
$a = 1;
$b = 1.0;
$c = ‘text’;
$d = $animal[‘unicorn’] = ‘pink unicorn’;
Setting an existing variable to null ( $var = null; ) is a way of un-setting a variable.
Another way is by using the unset() construct.
Un-set variables are also empty. So empty() is true.
The empty values are for :
– booleans FALSE $x = FALSE;
– integers and floats zero $a = 0;
– strings empty string $c = ”;
– arrays empty array $d = array();
The scope
The scope of a variable in PHP is the context in which the variable was created, and in which it can be accessed.
PHP has different variable scopes:
– global
– superglobal
– local
– static
– parameter
– Global
Global scope refers to any variable that is defined outside of any function.
Global variables can be accessed from any part of the script that is not inside a function.
To access a global variable from within a function, use the “global” keyword.
– Superglobal
Superglobals are a special set of predefined global arrays containing various useful information. They are accessible from anywhere in your script (including inside functions). Examples $_GET, $_POST, $_SESSION, $_SERVER …
– Local
A variable declared within a PHP function is local and can only be accessed within that function.
Local variables are deleted as soon as the function is completed.
– Static (local)
When a function is completed, all of its variables are normally deleted. However, sometimes you want a local variable to not be deleted. Use the “static” keyword when you declare the variable. In this case, each time the function is called, the variable will still have the information it contained from the last time the function was called.
– Parameter (local)
A parameter is a local variable whose value is passed to the function by the calling code.
Parameters are declared in a parameter list as part of the function declaration. Parameters are also called arguments.
Data types
String
String variables are used for values that contain characters.
$txt="Hello World";
is the same as $txt='Hello World';
– The anti slash
The anti slash is a must if you use equal signs in a string for the PHP interpreter !
$var = "My \"name\" is Marc";
but $var = 'My "name" is Marc';
$var = 'Je m\'appelle Marc';
but $var = "Je m'appelle Marc";
Integer
An integer is any positive or negative whole number or zero.
$age = 18;
Float
$something = 18.56;
Boolean
$i_am_a_hero = true;
$i_am_a_hero = false;
NUL
$var = NULL;
is the same as $var = null;
Operators
Arithmetic
addition c = a + b
subtraction c = a – b
multiplication c = a * b
division c = a / b
modulus c = a % b c will be the reminder of a divided by b
negation -c opposite of c
Incrementing / decrementing
pre-increment a++
post-increment ++a
pre-decrement a–
post-decrement –a
Comparison
equal a == b value
not equal a <> b or a!=b
identical a===b value and type
not identical a!==b
greater than a > b
greater or equal a>=b
less than a < b
less or equal a<=b
Logical
AND a and b or a&&b True if both a and b are true
OR a or b or a||b True if either or both a and b are true
XOR a xor b True if either a or b is true, but not both
NOT ! a True if a is not true. Example : !(4==7) returns true
Assignment
a gets the value of b a = b
addition a += b a = a + b
subtraction a -= b a = a – b
multiplication a *= b a = a * b
division a /= b a = a / b
modulus a %= b a = a % b
concatenate two strings a .= b a = a . b
String
concatenation a . b Example “Hi” . “John” gives HiJohn
Array
union x + y Union of x and y
equality x == y True if x and y have the same key/value pairs
identity x === y True if x and y have the same key/value pairs in the same order and are of the same type
inequality x != y or x <> y True if x is not equal to y
non-identity x !== y True if x is not identical to y
Output
Version 1
<?php
$age = 18;
echo "your age is $age years";
?>
Version 2
Is the mostly used by PHP programmers
<?php
$age = 18;
echo ' your age is ' . $age . 'years';
?>
The newline “trick”
echo 'after this text there will be a new line' . '<br>';
echo 'this text will be on the new line' ;
The print command
print_r();
Combinations (variable, text, HTML)
echo "$tmpemail is <strong>NOT</strong> a valid email address.<br/>";
User input and $_POST
A way that allows the user to supply your PHP script with input is done by using HTML forms.
The HTML form (for user input)
<html>
<head>
</head>
<body>
<form action="yourScript.php" method="post">
<input type="text" name="clientName"><br>
<input type="submit" value="submit">
</form>
</body>
</html>
The PHP script (yourScript.php)
Get the variable from the superglobal $_POST, then assign it to a variable in the PHP script for further processing.
<?php
$clName = ($_POST['clientName']);
echo 'Hi, your Name is...' . $clName;
?>
Putting all together (I prefer separate files for HTML and PHP code)
<html>
<head>
</head>
<body>
<form action=" " method="post">
<input type="text" name="clientName"><br>
<input type="submit" value="submit">
</form>
<?php
$clName = ($_POST['clientName']);
echo 'Hi, your Name is...' . $clName;
?>
</body>
</html>
Conditional statements overview
In PHP, we have the following conditional statements :
– IF statement : executes some code only if a specified condition is true
– IF ELSE statement : executes some code if a condition is true and another code if the condition is false
– IF ELSE IF ELSE statements : selects one of several blocks of code to be executed
– SWITCH statement : selects one of many blocks of code to be executed
The IF condition
Syntax
if (condition)
{
code to be executed if condition is true;
}
else if (condition)
{
code to be executed if condition is true;
}
else
{
code to be executed if conditions are false;
}
Example 1
<?php
$age = 24;
if ($age >= 21)
{
$ majority = true;
}
else
{
$ majority = false;
}
?>
Example 1 condensed
<?php
$age = 24;
$majority = ($age >= 21) ? true : false;
?>
The SWITCH condition
We have a single expression n, most often a variable, that is evaluated once. The value of the expression is then compared with the values for each case in the structure. If there is a match, the block of code associated with that case is executed; break prevents the code from running into the next case automatically. The default statement is used if no match is found.
Syntax
switch (n)
{
case label1:
code to be executed if n=label1;
break;
case label2:
code to be executed if n=label2;
break;
default:
code to be executed if n is different from both label1 and label2;
}
The WHILE and the DO WHILE loop
The while loop executes a block of code while a condition is true.
Syntax
while (condition)
{
code to be executed;
}
The DO WHILE statement will always execute the block of code once, it will then check the condition and repeat the loop while the condition is true.
Syntax
do
{
code to be executed;
}
while (condition);
The FOR loop
Only when the condition is “true”, the loop will be executed.
Syntax
for (init; condition; increment)
{
code to be executed;
}
Parameters:
– init: Mostly used to set a counter (but can be any code to be executed once at the beginning of the loop)
– condition: Evaluated for each loop iteration. If it evaluates to TRUE, the loop continues. If it evaluates to FALSE, the loop ends
– increment: Mostly used to increment a counter (but can be any code to be executed at the end of the iteration)
The FOREACH loop
The FOREACH loop is used to loop through arrays.
Syntax
foreach ($array as $value)
{
code to be executed;
}
For every loop iteration, the value of the current array element is assigned to $value (and the array pointer is moved by one) – so on the next loop iteration, you’ll be looking at the next array value.
Arrays
An array is a special variable which can hold more than one value at a time.
In PHP, there are three types of arrays:
– Indexed arrays : Arrays with numeric index
– Associative arrays : Arrays with named keys
– Multidimensional arrays : Arrays containing one or more arrays
!!!! Accessing a non-existent array item can trigger errors; you may want to test arrays and array items for existence with isset before using them !!!!
Indexed arrays
– Create an empty array or clear an existing array
$cars=array();
– Write in array
1) The index can be assigned automatically (index always starts at 0)
$cars=array("Volvo","BMW","Toyota");
2) The index can be assigned manually
$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="Toyota";
– Read from array
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
– Loop trough an array
<?php
$cars=array("Volvo","BMW","Toyota");
foreach ($cars as $value)
{
echo $value . "<br>";
}
?>
Associative arrays
Associative arrays are arrays that use named keys that you assign to them.
– Create an empty array or clear an existing array
$age=array();
– Write in array
1)
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
2)
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
– Read from array
echo "Peter is " . $age['Peter'] . " years old.";
– Loop trough an array
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach ($age as $x=>$x_value)
{
echo $x . " has the age of " . $x_value;
echo '<br>';
}
?>
Array functions
With array functions, you can access and manipulate arrays. http://www.w3schools.com/php/php_ref_array.asp
Functions
In PHP there are more than 700 built-in functions.
Of course you have the possibility to write your own functions ! A function will be executed by calling it by its name.
It is useful to give the function a name that reflects what it does. The function name can start with a letter or underscore, but not with a number.
Syntax
function functionName()
{
code to be executed;
}
Parameters (arguments)
Parameters are specified after the function name, inside the parentheses.
See also : http://php.net/manual/en/functions.arguments.php
function doSoemthing ($var_A, $var_B)
{
statements;
}
– Passing function parameters by reference
<?php
$test = array("a"=>"Adam","b"=>"Eva","c"=>"Noa");
simpel($test);
echo $test["a"] ." ".$test["b"] ." ".$test["c"];
function simpel(&$test)
{
$test["a"] = "Foo";
$test["b"] = "Bar";
$test["c"] = "FoBar";
}
?>
The output will be : Foo Bar FoBar
Return values
To let a function return a value, use the return statement.
PHP can only return one variable per function, use an array if you need to return multiple values.
– One return value
<?php
function add($x,$y)
{
$total=$x+$y;
return $total;
}
echo "1 + 17 = " . add(1,17);
?>
The output will be : 1 + 17 = 18
– Multiple return values (or the array trick)
<?php
$test = array();
$ret_val = array();
function simpel()
{
$test["a"] = "Foo";
$test["b"] = "Bar";
$test["c"] = "FoBar";
return $test;
}
$ret_val = simpel();
echo $ret_val["a"] ." ".$ret_val["b"] ." ".$ret_val["c"];
?>
The output will be : Foo Bar FoBar
Objects
An object is simply a “black box”. A “black box” is a chunk of code which is completely independent of any other code. It takes in information, processes it and returns a result. It also cooperates with other “black boxes”. You do not need to know anything concerning the internal working of the “black box”.
An object contains both data (called properties in Oo) and functions (called methods in Oo). The object properties describe the characteristics of an object while methods define what an object can do.
Classes are the blueprint (template) for an object. A class is at the top of the hierarchy in object oriented programming. Classes haves also properties and methods (inside). An object constructed by a class is called an instance of that class.
Coding basics and examples
http://www.killerphp.com/tutorials/php-objects-page-1/
https://www.codecademy.com/courses/web-beginner-en-ZQQ64/0/1
https://code.tutsplus.com/tutorials/object-oriented-php-for-beginners–net-12762
http://php.net/manual/en/classobj.examples.php