Konnor's Blog

Learning PHP - Part 2 - Lets get coding!

August 18, 2019

Part 2

Laracasts main site
Laracasts - PHP for beginners

Chapters

Chapter 2 - Install a code editor
Chapter 3 - Variables
Chapter 4 - PHP and HTML
Chapter 5 - Seperation of PHP logic

Hello World

Are you really learning a new program if you don’t create a simple hello world?

// hello-world.php
<?php
echo 'Hello World';

In a terminal run:

php hello-world.php

Should echo ‘Hello World’ to the command line.

Note: Also of note, when in a plain php file, without the closing ?> it is best practice due to parsing errors if you add extra lines after ?>

Easy win after the nightmare install process.

Variables

// index.php
<?php
$name = 'Konnor Rogers';
// Concats $name onto 'Hello'
echo 'Hello' . $name;
// Or
echo "Hello {$name}";

HTML + PHP

Pulling in parameters

// index.php
<?php
// pulls in the 'name' parameter
$name = htmlspecialchars($_GET['name']);
echo "Hello, " . $name;
// localhost:8888/?name=konnor #=> Hello, Konnor

htmlspecialchars(); Will convert special characters as the name suggests so people cannot inject malicious links, scripts, etc

Seperating php logic

In a small low level MVC framework, this is a microcosm of a view. index.view.php is essentially a template to be rendered, and index.php provides any necessary variables to be rendered. For example:
$greeting may be the result of a database call. You want that to be done server side without concern for the actual way it is being rendered.

// index.php
<?php
$greeting = 'Hello World';
// pulls in the view defined below
require 'index.view.php';
// Optionally, you can use: include 'index.view.php';
// Read the note below about the difference

Note: After perusing some documentation, `include` and `require` do essentially the same thing. They pull in variables and other data @ the level it is called. The only difference is the following:
`include` will not cause a compilation error if the file does not exist or is unreadable. It will only send a compilation warning.
`require` will cause a compilation error if the file does not exist or is unreadable
// index.view.php
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<title>Document</title>
<style>
header {
background: #e3e3e3;
padding: 2rem;
text-align: center;
}
</style>
</head>
<body>
<header>
<h1><?= $greeting; ?></h1>
</header>
</body>
</html>

<?= ?> is the same as <?php echo "string" ?>

Links

[Follow along with my repo](https://github.com/ParamagicDev/php-for-beginners)
[Laracasts main site](https://laracasts.com)
[PHP for beginners](https://laracasts.com/series/php-for-beginners)

Written by Konnor Rogers who currently works as a paramedic looking to transition into becoming a full time software developer. You should follow him on Twitter