Constants are like variables as they also store values but once they are defined they cannot be changed. A constant is basically a name for a value. The value cannot be changed during the script.
define(name, value, case-insensitive)
To create a php constant use define function. Default case-insensitive is false.
<?php define("GREETING", "Welcome to webtrickshome.com"); echo GREETING; ?>
Here's an example of case-insensitive constant.
<?php define("GREETING", "Welcome to webtrickshome.com", true); echo greeting; ?>
Constants are automatically global and can be used across the entire script. The example below uses a constant inside a function, even if it is defined outside the function:
<?php function myTest() { echo GREETING; } myTest(); ?>
Operators are used to perform operations on variables and values. PHP divides the operators in the following groups.
Arithmetic operators
Assignment operators
Comparison operators
Increment/Decrement operators
Logical operators
String operators
Array operators
Comparison operators are useful to compare two values. It returns boolean value true or false.
Operator | Name | Example | Result |
---|---|---|---|
== | Equal | $x == $y | Returns true if $x is equal to $y |
=== | Identical | $x === $y | Returns true if $x is equal to $y, and they are of the same type |
!= | Not equal | $x != $y | Returns true if $x is not equal to $y |
<> | Not equal | $x <> $y | Returns true if $x is not equal to $y |
!== | Not identical | $x !== $y | Returns true if $x is not equal to $y, or they are not of the same type |
> | Greater than | $x > $y | Returns true if $x is greater than $y |
< | Less than | $x < $y | Returns true if $x is less than $y |
>= | Greater than or equal to | $x >= $y | Returns true if $x is greater than or equal to $y |
<= | Less than or equal to | $x <= $y | Returns true if $x is less than or equal to $y |
$a = 10; $b = 20; var_dump($a>$b); if($a>b){ echo 'YES'; }else{ echo 'NO'; }
In a form, we are asking for a couples' number of child to be filled but one of them have no child. So, they'll enter 0 and in php 0 and false means empty and the form won't be submitted if we added the code for the form to be submitted only after all the input fields are filled. In such cases, we need to use (===) to check data if it's actually empty or not.
$childCount = (int)"0"; if(empty($childCount)){ echo 'Please enter the number of childs.' }
$childCount = (int)"0"; if($childCount === ""){ echo 'Please enter the number of childs.' } if($childCount === false){ echo 'Please enter the number of childs.' }
The assignment operators are used to define a value to a variable. The basic assignment operator in PHP is "=". It means that the left operand gets set to the value of the assignment expression on the right.
Assignment | Same as... | Description |
---|---|---|
x = y | x = y | The left operand gets set to the value of the expression on the right |
x += y | x = x + y | Addition |
x -= y | x = x - y | Subtraction |
x *= y | x = x * y | Multiplication |
x /= y | x = x / y | Division |
x %= y | x = x % y | Modulus |
x .= abc | x = abc.def | Concatenate |
$a = 10; $a = $a + 20 // $a += 20 $string = 'a quick brown fox'; $string .= ' jumps over the lazy dog'; echo $string;
Result: a quick brown fox jumps over the lazy dog
$q = true; $query = "SELECT * FROM tbl_posts"; if($q == "true"){ $query.= "WHERE id =".$q; } echo $query;
Result: "SELECT * FROM tbl_posts WHERE id =" .$q
The PHP arithmetic operators are used to perform arithmetical operations o data such as addition, substraction, multiplication, etc.
Operator | Name | Example | Result |
---|---|---|---|
+ | Addition | $x + $y | Sum of $x and $y |
- | Subtraction | $x - $y | Difference of $x and $y |
* | Multiplication | $x * $y | Product of $x and $y |
/ | Division | $x / $y | Quotient of $x and $y |
% | Modulus | $x % $y | Remainder of $x divided by $y |
** | Exponentiation | $x ** $y | Result of raising $x to the $y'th power (Introduced in PHP 5.6) |
The PHP increment operators are used to increment a variable's value while the decrement operators are used to decrement a variable's value.
Operator | Name | Description |
---|---|---|
++$x | Pre-increment | Increments $x by one, then returns $x |
$x++ | Post-increment | Returns $x, then increments $x by one |
--$x | Pre-decrement | Decrements $x by one, then returns $x |
$x-- | Post-decrement | Returns $x, then decrements $x by one |
$a = 10; echo ++$a; echo --$a;
Result: 11
Result: 9
The PHP logical operators are used to combine conditional statements.
Operator | Name | Example | Result |
---|---|---|---|
and | And | $x and $y | True if both $x and $y are true |
or | Or | $x or $y | True if either $x or $y is true |
xor | Xor | $x xor $y | True if either $x or $y is true, but not both |
&& | And | $x && $y | True if both $x and $y are true |
|| | Or | $x || $y | True if either $x or $y is true |
! | Not | !$x | True if $x is not true |
AND - all the stated conditions must return true value
OR - one among the given conditions must be true
! - flips true to false or vice versa
$eng = 70; $math = 50; $science = 80; if ( $eng>=40 && $math >= 40 && $science >= 40 ){ echo 'passed'; }else{ echo 'failed'; }
$ram = 70; $shyam = 39; $hari = 20; if ( ($ram>=40) && ($shyam >= 40) && ($hari >= 40) ){ echo 'Party'; }else{ echo 'Study'; }
It's a good practice to wrap conditons with small braces while stating multiple conditions.
Ternary operator is a shorthand for if else statement. It can be used for single if else statement.
(boolean condition) ? 'action if true' : 'action if false';
echo ($a == 100 ) ? 'YES' : 'NO';
PHP has two operators that are specially designed for strings.
Operator | Name | Example | Result |
---|---|---|---|
. | Concatenation | $txt1 . $txt2 | Concatenation of $txt1 and $txt2 |
.= | Concatenation assignment | $txt1 .= $txt2 | Appends $txt2 to $txt1 |
We can concatenate multiple strings in echo funtion using a (.).
$a = "ram"; $b = "shyam"; echo $a . $b;
Variables inside double quotes will be recognized by php but any variable inside single quotes will be assumed as charactes so we need to remove the variable from single quotes and concatenate it in such cases or use double quotes.
$b = 30; Incorrect echo 'My age is $b'; Result -> My age is $b Correct echo "My age is $b"; Result -> My age is 30 Correct echo 'My age is' . $b; Result -> My age is 30
If you want to use double quotes, still a good practice would be to wrap variables with curly braces. This will allow us to add characters with the variable.
echo "My age is {$b}"; Result -> My age is 30 echo "I'm in my {$b}s"; Result -> I'm in my 30s. echo "I'm in my $bs"; Result -> Undefined variable bs in line .............
The array operators are used to compare arrays.
Operator | Name | Example | Result |
---|---|---|---|
+ | Union | $x + $y | Union of $x and $y |
== | Equality | $x == $y | Returns true if $x and $y have the same key/value pairs |
=== | Identical | $x === $y | Returns true if $x and $y have the same key/value pairs in the same order and of the same types |
!= | Inequality | $x != $y | Returns true if $x is not equal to $y |
<> | Inequality | $x <> $y | Returns true if $x is not equal to $y |
!== | Non-identical | $x !== $y | Returns true if $x is not identical to $y |
Error supressing is crucial in production environment. There's no point in displaying php error messages to the clients, it's useful to the developers only. Adding @ in php supresses the errors.
If any error appears while executing a code in php, read it, understand it and try to solve it. This way, you can learn php much better.
Fatal error, exception, warning, notice. If fatal error occurs in any line of your php file, no codes below that line number will be executed. In other cases, rest of the codes will also be executed. We can disable those errors for production environment but need to see them in development environment.
$a; if(@is_null($a)){ echo 'yes'; }else{ echo 'no'; }
Function error_reporting(0) is the best way to disable error reporting in production environment rather than adding suppressor at each block of codes.
Php has multiple functions to retrieve date and time.
time(); -> fetches current timestamp.
mktime(); -> maketime -> converts given time to timestamp
strtotime(); -> converts string to timestamp
$now = time(); //current timestamp echo $now;
$time = mktime(12,11,22,11,23,2012); echo $time;
$strtime = strtotime('now'); $strtime = strtotime('+1 day'); $strtime = strtotime('+1 week'); echo $strtime;
Timestamp is the number of seconds since 00:00:00 1/1/1970. to convert timestamp into human readable format we can use date() or strftime().
$mktime = mktime(12,11,22,11,23,2012); echo date('l M jS \of Y',$mktime);
If the second parameter is not passed, date function will print current time.
echo date('H : i : s') will print current time. To store date in mysql you should use ymdhis
Local time can be printed in php using the function date_default_timezone_get(). If you don't have your default time zone correct either you can go to xampp configuration and open php.ini search for date.timezone and change it to your timezone as defined by php or you can set date_default_timezone_set() in your php file and set your runtime timezone. Changing server configuration permanently changes your timezone.
Typecasting allows us to change data type from string to integer or vice versa. When a value is processed through forms it will be saved as a sring even though you passsed a number. In such cases you might need to change its type. Typejuggling is the typecasting function performed automatically by php in some cases as shown below.
$a = "10"; $b = "20"; echo ($a + $b);
Result -> 30
Although there are string values, php assumes these numeric values as integer and performs mathematical operation in these cases.
$a = "10"; $b = "20 cars"; echo ($a + $b);
Result -> 30
Since there is a mathematical operator in the middle of the strings, php searches for numeric values in the variables and if found will perform the operation.
To see the data type of any variable.
echo gettype($a);
Result -> string
To typecast string to integer
settype($a,'int'); echo gettype($a);
Result->integer
settype($a,'boolean'); echo gettype($a);
Result->boolean
Another Typecasting Method
$x = (bool)$a; echo gettype($a);
Result->boolean
Leave a comment