PHP — Invoice (enum, class, promoted properties)
A realistic modern-PHP snippet with strict types, a namespace, a backed enum, a final class with constructor-promoted readonly properties, and array_reduce with an arrow function — for testing highlighters, PHPStan, and parsers.
<?php
// A small invoice model: a backed enum, a final class with typed
// promoted properties, a method, and array_reduce.
declare(strict_types=1);
namespace App\Billing;
enum Status: string
{
case Draft = 'draft';
case Sent = 'sent';
case Paid = 'paid';
}
final class Invoice
{
/** @var array<int, array{name: string, qty: int, unit: float}> */
private array $lines = [];
public function __construct(
public readonly string $number,
public Status $status = Status::Draft,
) {}
public function addLine(string $name, int $qty, float $unit): void
{
$this->lines[] = ['name' => $name, 'qty' => $qty, 'unit' => $unit];
}
public function total(): float
{
return array_reduce(
$this->lines,
fn(float $sum, array $line): float => $sum + $line['qty'] * $line['unit'],
0.0,
);
}
}
$invoice = new Invoice('INV-0001', Status::Sent);
$invoice->addLine('Design work', 3, 120.0);
$invoice->addLine('Hosting', 12, 8.5);
printf("%s (%s): $%.2f\n", $invoice->number, $invoice->status->value, $invoice->total());
Specifications
- Language
- PHP
- Kind
- realistic snippet
- Lines
- 44
- Encoding
- UTF-8
- Line Endings
- LF
What is a .php file?
PHP (.php) is a plain-text source file for the PHP language — a dynamically typed, server-side scripting language designed for web development, embeddable in HTML. Modern PHP supports classes, namespaces, type declarations, and closures, and powers a large share of web back-ends and CMS platforms.
How to use this file
Use an example .php file to test syntax highlighters, the PHP interpreter and linters (PHP_CodeSniffer, PHPStan), formatters, and parser or language-detection tooling.
Related files
- phpPHP — Hello WorldThe classic hello-world in PHP — an opening tag and echo — for testing highlighters, the PHP interpreter, and parsers.

- cC — Hello WorldThe classic hello-world in C — an include, main, and printf — for testing highlighters, C compilers, and parsers against the canonical first program.

- cC — Linked list (structs, malloc, pointers)A realistic C program: a singly linked list with a typedef struct, malloc/free memory management, pointer walking, and error handling — for testing highlighters, compilers, and static analysers.

- cppC++ — Hello WorldThe classic hello-world in C++ — iostream and std::cout — for testing highlighters, C++ compilers, and parsers.

- cppC++ — Series (class template, STL)A realistic C++ snippet with a class template, STL algorithms (max_element, accumulate), std::move, and range handling — for testing highlighters, g++/clang++, and parsers against real templates.

- cssCSS — Component styles (variables, flexbox, keyframes)A realistic component stylesheet using custom properties, flexbox, a fluid clamp() font size, color-mix(), a keyframe animation, and a media query — for testing CSS parsers, linters (stylelint), and highlighters.

Generated by generation/code_samples.py. Free for any use, no attribution required — license.