My PHP journey part 5.

Arrays

An array, is a variable that has more than one value. This is known as a compound data type.

They’re useful because they can store stuff.

They look like this.

$months [0] = ‘January’;
$months [1] = ‘February’;
$months [2] = ‘March’;
$months [3] = ‘April’;
$months [4] = ‘May’;
$months [5] = ‘June’;
$months [6] = ‘July’;
$months [7] = ‘August’;
$months [8] = ‘September’;
$months [9] = ‘October’;
$months [10] = ‘November’;
$months [11] = ‘December’;

The number in the square brackets is the order of the values, fairly obvious – it does have a fancy name – ‘array operator’.

But they can so look like this, in which case php will assume the number for you – counting from zero…

$shopping = [
‘bread’,
‘milk’,
‘butter’,
‘pasta’,
‘cheese’,
‘bin bags’,
‘oranges’,
‘apples’,
‘washing up liquid’,
‘rice’
];

So if you were to

echo $shopping[0];

The ‘bread’ will appear.

An array operator can also be a string key. For example:

$dog[‘name’] = ‘rover’;
$dog[‘age’] = 3.5;
$dog[‘eats’] = ‘shoes’;

Indexed arrays

An indexed array will look like this:

Array
(
[0] => tidy house
[1] => walk dog
[2] => go shopping
)

Where as an associative array will look like this:

Array
(
[name] => rover
[age] => 3.5
[eats] => shoes
)

The hash rocket => (sounds cooler than what it actually is!) means in php “Has the property” but will mean something different in other scripting languages.

Associative Arrays

Much like the above indexed arrays – except you can let php do the some of the work.

They look a bit like this.

$nikki = array(
‘first_son’ => ‘Ryan’,
‘second_son’ => ‘Liam’,
‘third_son’ => ‘Callum’,
‘first_daughter’ => ‘Jessica’
);

//In English, this reads “Nikki has some children, her first is Ryan, her second son is Liam…” And so on. 

php is doing the indexing for you… Hooray!

 

Outputting arrays

It’s all well and good having arrays which store loads of data, but how do you get stuff out of them?

Okay so you have the following array:

$joe = [‘eats’ => ‘pizza’, 

‘siblings’ => ‘two brothers’, 

‘hobby’ => ‘hang gliding’];

You could then write a script which says:

<p>Joe’s favourite food is <?php echo $joe[‘eats’] ?>, which he likes to eat with his <?php echo
$joe[‘siblings’] ?> while <?php echo $joe[‘hobby’] ?></p> 

It’s the same with indexed arrays, except you’ll need to put the number instead of the word. (Some hardcore php-ers will say this looks clumsy – but at this stage it doesn’t matter).

Now there’s a whole bunch of stuff you can talk about on arrays, including extracting the values and the labels using a foreach construct, plus multi-dimensional arrays and nested arrays.  But I think I’ll save this for another blog post.  I’m still trying to get my head around the above!

My PHP journey part 2.

So we just started to tackle operators. We looked increment and decrement… now we’re going to look at comparison operators.

Comparison Operators

The way in which I am remembering how these operators work is by simply remembering – comparisons. Same as, equal to, identical to, not the same as and so on.  It’s funny, equal to is not the same as identical to.  Something worth remembering.

So the symbols and meanings are as follows.

== …. “is equal to” (ie, values are equivalent; data types may be different though)

!= …. “is not equal to”

<= …. “smaller than or equal to”

=== …. “identical to” (both value AND data type are the same)

We can use these to make decisions because they equate to true or false data types.  How and when something is allowed access or even allowed to work. We’ll get to this later with a logical operator.

So for example…

$a = 4

$b = 8 

1+ 3 == $a ….//true

2 * 4 === $b//true

…And so on.

Truthy and Falsy 

Boolean data types equate to True and False – and these will determine whether the rest of script will run.  They have some simple atrributes that are worth remembering.

False:

  • Boolean false
  • the integer 0 (zero) and float 0.0
  • null
  • the string “0”
  • an empty string
  • an empty array

Truth:

  • Boolean true
  • Any string apart from the “falsy ones”, eg “string”
  • Integers apart from the above – e.g. 1, -123.45

 Conditional Statements 

PHP uses conditional statements to decide what to next.  It evaluates, operates and thinks, if this is X then… do something, if it’s not do something else

The main conditional statements are:

– if

– if…else

– if…else if

– switch

A piece of conditional statement code looks like this.

if ( expression ) {
piece of code here which equates to true or false will run
}

Think about this… You’re literally writing your own logic.  Is something not equal to… you could write it that if something is not equal too, but is true? For example:

 

$name = ‘Bill’;

if( $name != ‘Bert’ ){

echo ‘You’re not Bert!’;  //This will echo because != means ‘not equal to’ 

}

You can invert or shortcut the expression by making it false… you do this by putting ! in front of it. 

So it’ll look like this:

$weather = ‘bad’;

if( ! ($weather == ‘good’) ){  

echo ‘take your umbrella!’;

}  //To make this clear, weather equals ‘bad’ we know this – so this reads ‘if the weather is not the same as good, go get my umbrella.  It’s a double negative// 

Okay so you’ve written the script, and now you’ve written details on whether it works or not.  So what if you script comes to an end too suddenly? You can put in an else statement. So if something doesn’t happen at the if stage, something else will happen.

For example

$name = ‘admin’;

if( $name = = ‘Julie’){

echo ‘Hi Julie, how are you?’;
}
else {
echo ‘Welcome, user’;
}

Are you following me so far? 

Logical AND && and Logical OR ||

A logical AND is represented as a double ampersand.  If you have two or more expressions within you IF statement  it’ll mean that both of those expressions will have to evaluate to true for it to run.

For example:

$x = 3; 
$y = 5; 

if ( $x < $y && $y < 10 ){ 

echo $y

}

Both of those parts equate to true so on a blank screen you’ll see the number 5. If one of them didn’t equate to true you wouldn’t see anything.

A logical OR is represented by a double pipe || These symbols are alot easier to please as you only need one of the expressions to equate to true.  

Okay that’s enough brain melting for one day!