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
Testing contract
Expected to pass- Scenario
- Run the file under PHP 8.1+ and check the formatted total it prints.
- Expected result
- It prints `INV-0001 (sent): $462.00` - three units at 120.00 plus twelve at 8.50. It requires PHP 8.1 or later: `enum Status: string` is a backed enum, the constructor uses promoted `readonly` properties, and `declare(strict_types=1)` means passing an int where a float is declared is a TypeError rather than a silent coercion.
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.
How to use this file for testing
“PHP — Invoice (enum, class, promoted properties)” is a deterministic Novus Examples fixture for Syntax highlighting, Code parsing, Editor testing. Idiomatic hello-world programs and realistic snippets across sixteen languages, exercising comments, string escapes, interpolation, numeric literals, and language keywords — for testing syntax highlighters, editor themes, and tree-sitter grammars.
Documented properties for this file: PHP · UTF-8 · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
This is a short, known-correct source file. Run it through your syntax highlighter, linter, formatter, tree-sitter grammar, or parser, and open it in the in-browser editor to tweak and re-download. Each snippet exercises comments, string escapes, literals, and language keywords.
Code examples
php invoice.phpRelated files
- phpPHP — Hello WorldThe classic hello-world in PHP — an opening tag and echo — for testing highlighters, the PHP interpreter, and parsers.

- phpPHP AttributesPHP 8 attributes SAMPLE for PHP tooling.

- phpPhp Lint Invalid — Error Suppression InvalidIntentionally lint-bait SAMPLE php snippet (error-suppression-invalid) for rule-engine tests.

- 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.

- cC StructC struct SAMPLE for clangd / highlighter fixtures.

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