PHP Script α’αΆα ααααΎαααα»αααααααα’αααΈ Page?
PHP α’αΆα ααααΎααΆααααα»αααααααα αααΎαα
- .php (HTML+PHP) β ααααΎα
αααΎααααα»α: HTML αα½αααΆαα½α PHP αααα»α
<?php ... ?> - Pure PHP (API/CLI) β αααααΆαα JSON API α¬ command-line αααααααΆα HTML
- Short tag
<?= ?>β shortcut αααααΆαα echo - .phtml / .php5 β ααααΎαααα»α framework α αΆαα (Zend); αα·αααΌαααααΎαααααααα
<!DOCTYPE html>
<html>
<body>
<h1><?php echo "αα½ααααΈ PHP!"; ?></h1>
<p>ααααααα: <?= date('Y-m-d') ?></p>
</body>
</html>
ααααααα: 2026-02-28
<?php
// api.php - JSON output αααααααΆα HTML
header('Content-Type: application/json');
$data = ["status" => "ok", "message" => "Hello API"];
echo json_encode($data, JSON_UNESCAPED_UNICODE);
{
"status": "ok",
"message": "Hello API"
}
- ααααα <?php ?> β PHP code αααα αΆαααΆ text ααααααΆα Fix: αα»α code αααα»α tagα
- ααααα
; α
α»ααααααΆαα β Parse errorα Fix: ααΆαα statement α
ααααα
; - ααααΎ short tag <? αααααααΆα = β αα·α portableα Fix: ααααΎ
<?phpα¬<?=
- αααααΎα file hello.php ααααααα αΆα "Hello, World!" αααα»α <h1>
- αααααΎα file today.php αααα αΆαααααααααααΆα αααααααΎ date()
π Answer Key
<!-- hello.php -->
<h1><?php echo "Hello, World!"; ?></h1>
<!-- today.php -->
<p>Today: <?= date('d/m/Y') ?></p>
Variable ααΆα’αααΈ? ααααΎααΎααααΈα’αααΈ?
Variable (α’ααα) ααΆαααααααααααΆαα»ααα·αααααααααα»α memoryα αααα»α PHP variable α
αΆααααααΎαααα $ (case-sensitive)α
- αααααα αΆααααααΎααααα’αααα α¬ _ (αα·ααααααα)
- α’αΆα αααα»α: string, integer, float, boolean, array β¦
- α’αΆα ααααΆααααααΌααααααααΆααααααααα (re-assign)
<?php // αααααΆα variable $name = "αα»ααΆ"; // string $age = 20; // integer // αααα αΆα output echo "ααααα: $name\n"; echo "α’αΆαα»: $age ααααΆα\n"; echo "$name ααΆαα’αΆαα» $age ααααΆαα\n"; // ααααΆααααααΌαααααα $age = 21; echo "α’αΆαα»ααααΈ: $age ααααΆα\n"; ?>
ααααα: αα»ααΆ α’αΆαα»: 20 ααααΆα αα»ααΆ ααΆαα’αΆαα» 20 ααααΆαα α’αΆαα»ααααΈ: 21 ααααΆα
- ααααα
$ β PHP αα·αααααΆαα variableα
$nameβ /nameβ - ααααΎαααα
αΆααααααΎαααααα β
$1nameβ β$name1β
- αααααΆα $city = "ααααααα" α αΎααααα αΆα "αααα»αααααα ααααααα"
- αααααΆα $price = 2.5 α αΎααααα αΆα type ααα gettype()
π Answer Key
<?php $city = "ααααααα"; echo "αααα»αααααα $city\n"; $price = 2.5; echo gettype($price); // double ?>
Variable vs Constant β αααααααα
Variable α’αΆα ααααΆααααααΌαααααα; Constant αααααααααααααα αα·αα’αΆα ααααΆααααααΌαα
| αααααα | Variable | Constant |
|---|---|---|
| Syntax | $name = "..."; | define("NAME","..."); const NAME = "..."; |
| ααααΎ $? | β ααΆα $ | β ααααΆα $ |
| ααααΆααααααΌαααααα? | β ααΆα | β αα·αααΆα |
| Scope | Local / Global | Global ααΆαα·α αα |
| ααααα convention | $camelCase | UPPER_CASE |
<?php
// -- Constant --
define("SITE_NAME", "PHP School");
echo SITE_NAME . "\n"; // PHP School
// β constant αα·αα’αΆα
reassign:
// define("SITE_NAME", "Other"); // Warning!
// -- Variable --
$version = "1.0";
echo "Version: $version\n";
$version = "2.0"; // β re-assign ααΆα
echo "Version: $version\n";
const TAX_RATE = 0.10;
echo "Tax: " . (TAX_RATE * 100) . "%\n";
?>
PHP School Version: 1.0 Version: 2.0 Tax: 10%
- ααααΎ $ ααΆαα½α constant β
$SITE_NAMEβ (αααααΆ variable ααααΈ) βSITE_NAMEβ - ααααΆααΆα reassign constant β ααΉα warning/errorα Fix: ααααΎ variable ααΎααααΌαααΆαααααΆααααααΌαα
- αααααΎα constant MAX_USERS = 100 α αΎα echo
- αααααΎα $count = 0 α αΎα ααααΆααααααΌαααΆ 5 α αΎα echo
π Answer Key
<?php
define("MAX_USERS", 100);
echo MAX_USERS; // 100
$count = 0;
$count = 5;
echo $count; // 5
?>
echo " " (double) vs echo ' ' (single) β αααααααααΆ;
- Double quotes " " β PHP parse variable αα αααα»α string αα·α ααααΆαα escape sequences (\n, \t, \\)
- Single quotes ' ' β αααα αΆα literal text ααΆααα’αα; αα·α parse variable
<?php $name = "Dara"; // Double quotes - variable ααααΌαααΆα parse echo "Hello, $name!\n"; // Hello, Dara! echo "Tab:\there\n"; // Tab: here // Single quotes - literal text echo 'Hello, $name!\n'; // Hello, $name!\n echo 'It\'s working'; // It's working ?>
Double: Hello, Dara! Single: Hello, $name!\n Escape: It's working
- ααααΉα variable parse αααα»α single quotes β αααα αΆα $name ααΆ textα Fix: ααααΎ double quotes
- ααααα
escape ' αααα»α single quotes β syntax errorα Fix:
\'α¬ααααΎ double quotes
- $fruit = "Apple"; echo αααααααΎ double αα·α single β αααααααα output
- ααααΎ escape \n αααα»α double quotes ααΎααααΈα α»ααααααΆαα
π Answer Key
<?php $fruit = "Apple"; echo "I like $fruit\n"; // I like Apple echo 'I like $fruit\n'; // I like $fruit\n echo "Line1\nLine2\n"; // Line1 (newline) Line2 ?>
αααααα/αααααα Variable (Data Types)
PHP ααΆα Data Types 3 αααα»αα
| αααα»α | Types | ααααΆα |
|---|---|---|
| Scalar | string, int, float, bool | "hi", 10, 3.14, true |
| Compound | array, object | [1,2], new stdClass |
| Special | NULL, resource | null, fopen() |
<?php
$str = "Hello"; // string
$int = 42; // integer
$float = 3.14; // float (double)
$bool = true; // boolean
$arr = [1, 2, 3]; // array
$obj = new stdClass; // object
$obj->name = "Test";
$nul = null; // NULL
echo gettype($str) . "\n"; // string
echo gettype($int) . "\n"; // integer
echo gettype($float) . "\n"; // double
echo gettype($bool) . "\n"; // boolean
echo gettype($arr) . "\n"; // array
echo gettype($obj) . "\n"; // object
echo gettype($nul) . "\n"; // NULL
var_dump($float); // float(3.14)
var_dump($bool); // bool(true)
// resource example
$file = fopen("php://temp", "r");
echo gettype($file) . "\n"; // resource
fclose($file); // β ααααΌα close ααΆαα·α
αα
?>
string integer double boolean array object NULL float(3.14) bool(true) resource
- ααααα fclose() β resource leakα Fix: ααααΌα fclose() ααΆαα·α αα αααααΆααααΈααααΎ fopen()
- α ααααα float αα·α double β gettype() αααααα "double" αα·αααα "float"α ααΆααααΈαααΆααααααΌα ααααΆα
- αααααΆα variable 4 αααααα (string, int, float, bool) α αΎα var_dump()
- ααααΎ gettype() ααΎ null αα·α array β αααα αΆαα’αααΈ?
π Answer Key
<?php
var_dump("hi"); // string(2) "hi"
var_dump(10); // int(10)
var_dump(1.5); // float(1.5)
var_dump(false); // bool(false)
echo gettype(null); // NULL
echo gettype([1,2,3]); // array
?>
β Check Understanding 1 (Q1βQ5) β Predict the Output
-
<?php echo "Today: " . date('Y'); ?>π Answer
Today: 2026
-
<?php $x = 5; $x = 10; echo $x; ?>π Answer
10 (variable re-assigned)
-
<?php define("PI",3.14); echo PI; ?>π Answer
3.14
-
<?php $a="PHP"; echo 'I love $a'; ?>π Answer
I love $a (single quotes = no parsing)
-
<?php echo gettype(3.14); ?>π Answer
double
"PHP is a Loosely Typed Language" ααΆααααααΆαααα ?
PHP αα·αααααΌαααΆααααααΆα type ααΎ variableα PHP ααΉαααααΆααααααΌα type αααααααααααααααα· (type juggling)α αααα’αΆα ααΆαααααΎααΆα ααα»ααααα’αΆα ααΆααα bug!
<?php $x = "10"; // string echo gettype($x) . "\n"; // string $x = $x + 5; // ααααΆααααΆ integer! echo $x . "\n"; // 15 echo gettype($x) . "\n"; // integer $x = $x + 1.5; // ααααΆααααΆ float! echo $x . "\n"; // 16.5 echo gettype($x) . "\n"; // double // β α αΆαα·ααα type juggling $a = "5 apples"; $b = $a + 3; // PHP α αΆαααα 5 ααΈ "5 apples" echo "$b\n"; // 8 // β Safe casting $val = "42abc"; $safe = (int)$val; echo "Cast: $safe\n"; // 42 echo "Type: " . gettype($safe) . "\n"; $fval = (float)"3.14abc"; echo "Float cast: $fval\n"; // 3.14 ?>
string 15 integer 16.5 double 8 Cast: 42 Type: integer Float cast: 3.14
- ααΉαααΆ loose typing β "5 apples" + 3 = 8 α’αΆα ααααααΆ bugα Fix: validate ααα is_numeric() αα»α
- ααααΎ == αααα½αααΆ === β
"0" == falseααΆ true! Fix: ααααΎ === ααΎααααΈααααααααααααΉαααααΌα
- $x = "7"; $x = $x + 3; β echo $x αα·α gettype($x)
- $y = (int)"99bottles"; β echo $y?
π Answer Key
$x = 10, gettype = integer $y = 99
gettype() ααΆα’αααΈ?
gettype() ααΆ function αααααα string αααα αΆα type αααα variableα ααααααα "string", "integer", "double", "boolean", "array", "object", "NULL", "resource"
<?php
echo gettype("Hello") . "\n"; // string
echo gettype(42) . "\n"; // integer
echo gettype(3.14) . "\n"; // double
echo gettype(true) . "\n"; // boolean
echo gettype([1,2,3]) . "\n"; // array
echo gettype(null) . "\n"; // NULL
echo gettype(new stdClass) . "\n"; // object
?>
string integer double boolean array NULL object
- ααααα ααΆ float αααααα "double" β gettype() ααααΎ "double" αααααΆαα floatα ααΆ legacy ααΈ Cα
- ααααΎ gettype() ααΎααααΈαααααααα type β α αΌαααααΎ is_string(), is_int() αα·αα
- echo gettype(""); β αααα αΆαα’αααΈ?
- echo gettype(0); β αααα αΆαα’αααΈ?
π Answer Key
gettype("") β string
gettype(0) β integer
α’αΆα ααΌα String ααΆαα½α Number ααΆααα?
ααΆα! PHP ααΉαααααΆαα string ααΆ number αααααααααααααααα· (type juggling)α ααα»ααααααααΌαααααΆαα
<?php
// Case 1: "10" + 5
$r1 = "10" + 5;
echo '"10" + 5 = ' . $r1 . "\n"; // 15
echo "Type: " . gettype($r1) . "\n"; // integer
// Case 2: "10abc" + 5 β PHP αα 10 ααΈ "10abc"
$r2 = "10abc" + 5;
echo '"10abc" + 5 = ' . $r2 . "\n"; // 15
// Case 3: "abc" + 5 β "abc" = 0
$r3 = "abc" + 5;
echo '"abc" + 5 = ' . $r3 . "\n"; // 5
// β Best practice: validate αα»α
$input = "10abc";
if (is_numeric($input)) {
echo "Safe: " . ($input + 5) . "\n";
} else {
echo "β '$input' αα·ααααααΆαααααααΉαααααΌα\n";
}
// β Cast ααααΉαααααΌα
$safe = (int)"42" + 8;
echo "Safe cast: $safe\n"; // 50
?>
"10" + 5 = 15 Type: integer "10abc" + 5 = 15 "abc" + 5 = 5 β '10abc' is not a valid number Safe cast: 50
- ααααΎ . αααα½α + β
.ααΆ string concat;+ααΆ mathα "10"."5" = "105" ααα»αααα "10"+5 = 15 - αα·α validate input β α’αΆα αααα bugα Fix: ααααΎ is_numeric() αα»αααααΆ
- "20" + "30" = ? αα·α "20" . "30" = ?
- is_numeric("12.5") ααααααα’αααΈ?
π Answer Key
"20" + "30" = 50 (math)
"20" . "30" = "2030" (concat)
is_numeric("12.5") = true
Operators αα αααα»α PHP ααΆαα’αααΈαααα?
PHP ααΆα operator ααΆα αααΎααααα»αα
<?php echo 10 + 3 . "\n"; // 13 echo 10 - 3 . "\n"; // 7 echo 10 * 3 . "\n"; // 30 echo 10 / 3 . "\n"; // 3.333... echo 10 % 3 . "\n"; // 1 echo 2 ** 3 . "\n"; // 8 ?>
13 7 30 3.3333333333 1 8
<?php $a = 10; $a += 5; // 15 $a -= 3; // 12 $a *= 2; // 24 $a /= 4; // 6 $a %= 4; // 2 $s = "Hi"; $s .= " PHP"; // "Hi PHP" echo "$a\n$s\n"; ?>
2 Hi PHP
<?php var_dump(5 == "5"); // true (loose) var_dump(5 === "5"); // false (strict) var_dump(5 != "5"); // false var_dump(5 !== "5"); // true var_dump(5 > 3); // true var_dump(5 <= 5); // true var_dump(5 <=> 3); // 1 (spaceship) ?>
bool(true) bool(false) bool(false) bool(true) bool(true) bool(true) int(1)
<?php $a = 5; echo $a++ . "\n"; // 5 (return then ++) echo $a . "\n"; // 6 echo ++$a . "\n"; // 7 (++ then return) echo --$a . "\n"; // 6 ?>
5 6 7 6
<?php var_dump(true && false); // false var_dump(true || false); // true var_dump(!true); // false ?>
bool(false) bool(true) bool(false)
<?php echo "Hello" . " " . "PHP" . "\n"; // Hello PHP $s = "Hi"; $s .= " World"; echo $s . "\n"; // Hi World ?>
Hello PHP Hi World
<?php $a = ["a" => 1, "b" => 2]; $b = ["c" => 3, "d" => 4]; $c = $a + $b; // union print_r($c); var_dump($a == $b); // false var_dump($a === $a); // true ?>
Array ( [a] => 1 [b] => 2 [c] => 3 [d] => 4 ) bool(false) bool(true)
<?php $age = 20; echo ($age >= 18) ? "Adult" : "Minor"; // Adult $name = $_GET['name'] ?? "Guest"; // Guest ?>
Adult Guest
- ααααΎ = αααα½α == β = ααΆ assign; == ααΆ compareα if($x = 5) ααααα true!
- ααααΎ == αααα½α === β == αα·ααααααααα typeα "0"==false ααΆ trueα Fix: ααααΎ ===
- $x=10; $x %= 3; echo $x; β ?
- var_dump(0 == "abc"); β true α¬ false?
π Answer Key
$x = 10 % 3 = 1 0 == "abc" β PHP 8: false (PHP 7: true)
Conditional Operator (Ternary) ααΆααααααα’αααΈ?
Ternary operator ααΆ shortcut αααααΆαα if-else αααα»ααααααΆαααααα½αα
$result = (condition) ? value_if_true : value_if_false;
Null coalescing ?? β αααααααααααααΆααααααααΎ variable ααΆ null α¬ undefinedα
$result = $value ?? default_value;
<?php // Example 1: Vote $age = 20; $canVote = ($age >= 18) ? "α’αΆα ααααααααααΆα" : "αα·αααΆααα’αΆα αααααααα"; echo "α’αΆαα» $age: $canVote\n"; // Example 2: Pass/Fail $score = 45; $result = ($score >= 50) ? "Pass β" : "Fail β"; echo "Score $score: $result\n"; // Example 3: Null coalescing ?? $gender = $_GET['gender'] ?? 'αα·ααααα αΌα'; echo "Gender: $gender\n"; $username = null; $display = $username ?? "Anonymous"; echo "User: $display\n"; // Nested ternary (αααααααα!) $num = 0; $type = ($num > 0) ? "positive" : (($num < 0) ? "negative" : "zero"); echo "$num is $type\n"; ?>
α’αΆαα» 20: α’αΆα αααααααα Score 45: Fail Gender: αα·ααααα αΌα User: Anonymous 0 is zero
- Nested ternary α αααΎαααα β αα·ααΆαα’αΆαα Fix: ααααΎ if-else α¬ααΆα () ααΆαα·α αα
- ααααα ?? α αΎαααααΎ ternary ααααΉαααααΌα β $x ?? "default" ααααΎαααΆα isset($x) ? $x : "default"
- $temp=35; echo ($temp>30)?"Hot":"Cool"; β ?
- $x = null; echo $x ?? "N/A"; β ?
π Answer Key
$temp=35 β "Hot" $x=null β "N/A"
β Check Understanding 2 (Q6βQ10) β Predict the Output
-
$x = "5" + 3; echo gettype($x);π Answer
integer
-
echo gettype(null);π Answer
NULL
-
"3 cats" + "2 dogs" = ?π Answer
5 (PHP αα 3 αα·α 2)
-
var_dump(0 === false);π Answer
bool(false) β === αααααααα type (int vs bool)
-
$n = null; echo $n ?? "default";π Answer
default
π§ͺ Try It β ααΆααααα
π How to Run β αααααααααΆααααα
- α
αααα file
qa_php_basics.phpαα αααα»α folder:C:\laragon\www\ex\qa_php_basics.php α¬ C:\xampp\htdocs\ex\qa_php_basics.php
- ααΎα Laragon / XAMPP (Apache + PHP)
- ααΎα browser α αΎαα
αΌαα
http://localhost/ex/qa_php_basics.php