Tuesday 4 December 2018

PHP: array_key_exists() vs isset()

Hello All,

We are talking about an issue which comes to PHP developers almost every day.

Say, we have an array:

$students = [
111 => ['id' => 111, 'name' = 'Philip'],
112 => ['id' => 112, 'name' = 'James'],
113 => ['id' => 113, 'name' = 'Stephen'],
....
];

Say this array has 100000 (one lack) rows.

And we are asked to loop over them and display names or other information.

What we will do it, we will loop over the array and print the records.

Fine up to here.

Second situation:

We need to check whether id 9989 is present in array.

How will you find it?

Way 1:


$studentId = 9899;
if (array_key_exists($studentId, $students)) {
 // Code here
}

Way 2:

Set each student's array's key to its id like: 

111 => ['id' => 111, 'name' = 'Philip'],

Now find it with isset()

$studentId = 9899;
if (isset($students[$studentId])) {
 // Code here
}

Way 2 is much faster than way 1 as it is using in built language construct.

And through Way 1, we are traversing through whole array, where as through Way 2, we are just checking if an index is set.

Friday 27 July 2018

PHP Tips and Tricks

Use short cut operators for adding/subtracting values from variables.
1) += operator.
Consider following:

$a = 10;
$a = $a + 3;
// $a is 13 now.

We can replace the second statement by:

$a += 3; // Add 3 to $a

2) -= operator.
Consider following:

$a = 10;
$a = $a - 3;
// $a is 7 now.

We can replace the second statement by:

$a -= 3; // Subtract 3 to $a

3) Say if you are assigning a variable to some value if some condition is met. Also, the if condition has another variable set.

Just look at the following example:

if ($condition == TRUE) {
  $a = 7;
  $b = 9;
}
else {
  $a = 11;
}

We can skip the else structure like following:

$a = 11;
if ($condition == TRUE) {
  $a = 7;
  $b = 9;
}

In above code, we have reduced 2 lines of code.

Wednesday 25 July 2018

Ternary Operator in PHP

Ternary operator is a shrtcut operator for if else statement.

Syntax:

$var = (condition) ? if yes, value : if no, value;

For example:
If you have an if else statement like this:

if ($b>5) {
 $a = 3;
}
else {
 $a = 5;
}

The same thing can be wrote with ternary operator in a single line like:


$a = ($b>5) ? 3 : 5;

Thus, we have seen how much lines of codes is reduced.

Tuesday 29 May 2018

How to change Apache port in Windows

This problem may occur due to apache not getting required port (default is 80).
The port may be being used by other services.
For example: Skype also has default port 80.
Installing Skype and Apache both on same machine will cause conflict and hence Apache will not start.
Either, you change Skype port or change Apache port as described in following steps:
Change the ports of Apache and it will work for you. Go to httpd.conf
How to change port for Apache:
Search for:

ServerName localhost:80

Change it to:

ServerName localhost:81

Also Search For:

Listen 80

Change it to:

Listen 81

If you have created any virtual hosts, change the ports there also. Then restart your apache.

Reference: https://stackoverflow.com/a/18306621/1841760

Friday 25 May 2018

Reorder divs (sequence) using CSS

Say, you have two divs. Left and right.
On desktop, you want sequence
Left - Right
But, on mobiles, you want:
Right - Left

This can be achieved through CSS properties.
Code:

Note: Use media queries appropriately.

<!DOCTYPE>
<html>
<head>
<title>Re ordering of divs using CSS.</title>
</head>
<body>
<div class="parent">
<div class="left" style=" height: 100px; background-color: grey; float: left;"><h1>Left</h1></div>
<div class="right" style="height: 100px; background-color: black; float: left;"><h1>Right</h1></div>
</div>

<style>
.parent div h1 {color: #ffffff;}
.parent {width: 100%; display: flex; flex-direction: column;}
.left {padding: 10px; width: 100%; order: 2;}
.right {padding: 10px; width: 100%; order: 1}
</style>
</body>
</html>

Without using above solution:



After using above solution:


Any suggestions/comments are most welcome.

Parenting tips to inculcate learning habits in your kid

Parenting tips to inculcate learning habits in your kid Tip #1) Children do not learn things, they emitate. So, try to do things by yours...