We have followed the 'Leraning-PHP-7' book.
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
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 ?>
this block is php initialize '' syntax. we will write code in this block.
<?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.
//
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
?>
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
?>
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
?>
$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 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);
?>
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
?>
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
?>
<?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);
?>
<?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'
);
?>
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'])```
<?php
$names = ['Harry', 'Ron', 'Hermione'];
$names['badguy'] = 'Voldemort';
$names[8] = 'Snape';
$names[] = 'McGonagall';
?>
print_r($names);
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);