php-basic
We have followed the 'Leraning-PHP-7' book.
PHP - Installation
Intsall php7.4 included some package using a single command.
sudo apt-get install -y php7.4-cli php7.4-json php7.4-common php7.4-mysql php7.4-zip php7.4-gd php7.4-mbstring php7.4-curl php7.4-xml php7.4-bcmath
Run a sample code
see the code below:
<?php
echo "Hello World!";
?>
PHP provides built in server that we already install. Save the above program as 'main.php' and run the following command php -S localhost:8080
. you will get a link like that http://localhost:8080
.
copy the linke http://localhost:8080/main.php
and past on browser url.
Congratulations! You will get 'Hello World' message.
PHP BASICS SYNTAX
php code block
<?php ?>
this block is php initialize '' syntax. we will write code in this block.
printing message
<?php
echo "Hello World!";
var_dump("This is var dump message");
print_r("This is print_r message");
?>
Output:
Hello World!
string(29) "This is var dump message"
This is print_r message
echo
print normal message.
var_dump()
print message with object/data type
print_r
print normal message/array with index.
Comments
//
is single line comment
/*...*/
is multi line comments
Example:
<?php
/*
* This is the first file loaded by the web server.
* It prints some messages and html from other files.
*/
// let's print a message from php
echo 'hello world';
// and then include the
?>
Variables
Has no predefined data type. Use $ sign infront of variable
<?php
$a = 1;
$b = 2;
$c = $a + $b;
echo $c; // 3
?>
Some Rules of using variables
<?php
$_some_value = 'abc'; // valid
$1number = 12.3; // not valid!
$some$signs% = '&^%'; // not valid!
$go_2_home = "ok"; // valid
$go_2_Home = 'no'; // this is a differen
?>
Data Types
PHP has eight primitive types, but for now, we will focus on its four scalar types:
- Booleans
- Integers
- Floating Points Numbers as floats
- Strings
* Integers
* Floating Points Numbers as floats
* Strings
<?php
$number = 123;
var_dump($number);
$number = 'abc';
var_dump($number);
?>
Type juggling PHP tries to convert the data type of a variable only when there is a context where the type of variable needed is different. But PHP does not change the value and type of the variable itself. Instead, it will take the value and try to transform it, leaving the variable intact.
For Example
<?php
$a = "1";
$b = 2;
var_dump($a + $b); // 3
var_dump($a . $b); // 12
?>
Operators
Arithmetic Operator
$a = 10;
$b = 3;
var_dump($a + $b); //plus 13
var_dump($a - $b); //minus 7
var_dump($a * $b); //multiplication 30
var_dump($a / $b); //division 3.333333...
var_dump($a % $b); //modulus 1
var_dump($a ** $b); //power 1000
var_dump(-$a); //negative -10
?>
Assignment operators
Assignment operator assigns the result of an expression to a variable. There are a series of assignment operators that work as shortcuts.
<?php
$a = 13;
$a += 14; // same as $a = $a + 14;
var_dump($a);
$a -= 2; // same as $a = $a - 2;
var_dump($a);
$a *= 4; // same as $a = $a * 4;
var_dump($a);
?>
Comparison operators
There is also the special operator
<=> (spaceship) that compares both the operands and returns an integer instead of a
Boolean. When comparing a with b, the result will be less than 0 if a is less than b, 0 if
a equals b, and greater than 0 if a is greater than b. Let's see some examples:
<?php
var_dump(2< 3); // true
var_dump(3< 3); // false
var_dump(3<= 3); // true
var_dump(4<= 3); // false
var_dump(2> 3); // false
var_dump(3>= 3); // true
var_dump(3> 3); // false
var_dump(1<=> 2); // int less than 0
var_dump(1<=> 1); // 0
var_dump(3<=> 2); // int greater than 0
?>
Difference Between equals and identical operator
The == (equals) operator evaluates two
expressions after type juggling, that is, it will try to transform both expressions to the
same type, and then compare them. Instead, the === (identical) operator evaluates
two expressions without type juggling, so even if they look the same, if they are not of
the same type, the comparison will return false . The same applies to != or <> (not
equal to) and !== (not identical):
<?php
$a = 3;
$b = '3';
$c = 5;
var_dump($a== $b); // true
var_dump($a=== $b); // false
var_dump($a!= $b); // false
var_dump($a!== $b); // true
var_dump($a== $c); // false
var_dump($a<> $c); // true
?>
Logical operators
Four Types of Logical Operators.
<?php
var_dump(true && true); // true
var_dump(true && false); // false
var_dump(true || false); // true
var_dump(false || false); // false
var_dump(!false); // true
?>
Incrementing and decrementing operators
<?php
$a = 3;
$b = $a++; // $b is 3, $a is 4
var_dump($a, $b);
$b = ++$a; // $a and $b are 5
var_dump($a, $b);
?>
ARRAYS
Initializing array
<?php
$empty1 = [];
$empty2 = array();
$names1 = ['Harry', 'Ron', 'Hermione'];
$names2 = array('Harry', 'Ron', 'Hermione');
$status1 = [
'name' => 'James Potter',
'status' => 'dead'
];
$status2 = array(
'name' => 'James Potter',
'status' => 'dead'
);
?>
Populating arrays
Array can be changable. The changing way is the following:
<?php
$names = ['Harry','Ron', 'Hermione'];
$status = [
'name' => 'James Potter',
'status' => 'dead'
];
$names[] = 'Neville';
$status['age'] = 32;
print_r($names, $status);
?>
Removing elements from the array ```unset($status['status'])```
Accessing element from an array
<?php
$names = ['Harry', 'Ron', 'Hermione'];
$names['badguy'] = 'Voldemort';
$names[8] = 'Snape';
$names[] = 'McGonagall';
?>
print_r($names);
Ordering Arrays
n array can be sorted in different ways, so there are a lot of chances that the order that you need is different from the current one.
Name | Sorts by | Maintains key association | Order of sort |
---|---|---|---|
sort | Value | No | Low to high |
rsort | Value | No | High to low |
asort | Value | Yes | Low to high |
arsort | Value | Yes | High to low |
ksort | Key | Yes | Low to high |
krsort | Key | Yes | High to Low |
Example:
<?php
$properties = [
'firstname' => 'Tom',
'surname' => 'Riddle',
'house' => 'Slytherin'
];
$properties1 = $properties2 = $properties3 = $properties;
sort($properties1);
var_dump($properties1);
asort($properties3);
var_dump($properties3);
ksort($properties2);
var_dump($properties2);
?>
Other Functions
$keys = array_keys($properties);
$values = array_values($properties);
$size = count($names);
$all = array_merge($good, $bad);