Downloads
Documentation
Get Involved
Help
Search docs
PHP 8.4.1 Released!
Getting Started
Introduction
A simple tutorial
Language Reference
Basic syntax
Types
Variables
Constants
Expressions
Operators
Control Structures
Functions
Classes and Objects
Namespaces
Enumerations
Errors
Exceptions
Fibers
Generators
Attributes
References Explained
Predefined Variables
Predefined Exceptions
Predefined Interfaces and Classes
Predefined Attributes
Context options and parameters
Supported Protocols and Wrappers
Security
Introduction
General considerations
Installed as CGI binary
Installed as an Apache module
Session Security
Filesystem Security
Database Security
Error Reporting
User Submitted Data
Hiding PHP
Keeping Current
Features
HTTP authentication with PHP
Cookies
Sessions
Handling file uploads
Using remote files
Connection handling
Persistent Database Connections
Command line usage
Garbage Collection
DTrace Dynamic Tracing
Function Reference
Affecting PHP's Behaviour
Audio Formats Manipulation
Authentication Services
Command Line Specific Extensions
Compression and Archive Extensions
Cryptography Extensions
Database Extensions
Date and Time Related Extensions
File System Related Extensions
Human Language and Character Encoding Support
Image Processing and Generation
Mail Related Extensions
Mathematical Extensions
Non-Text MIME Output
Process Control Extensions
Other Basic Extensions
Other Services
Search Engine Extensions
Server Specific Extensions
Session Extensions
Text Processing
Variable and Type Related Extensions
Web Services
Windows Only Extensions
XML Manipulation
GUI Extensions
Keyboard Shortcuts
?
This help
j
Next menu item
k
Previous menu item
g p
Previous man page
g n
Next man page
G
Scroll to bottom
g g
Scroll to top
g h
Goto homepage
g s
Goto search
(current page)
/
Focus search box
Basic syntax »
« How to change configuration settings
PHP Manual
Change language:
English
German
Spanish
French
Italian
Japanese
Brazilian Portuguese
Russian
Turkish
Ukrainian
Chinese (Simplified)
Other
Language Reference
Basic syntax
PHP tags
Escaping from HTML
Instruction separation
Comments
Types
Introduction
Type System
NULL
Booleans
Integers
Floating point numbers
Strings
Numeric strings
Arrays
Objects
Enumerations
Resources
Callbacks / Callables
Mixed
Void
Never
Relative class types
Value types
Iterables
Type declarations
Type Juggling
Variables
Basics
Predefined Variables
Variable scope
Variable variables
Variables From External Sources
Constants
Syntax
Predefined constants
Magic constants
Expressions
Operators
Operator Precedence
Arithmetic
— Arithmetic Operators
Increment and Decrement
— Incrementing/Decrementing Operators
Assignment
— Assignment Operators
Bitwise
— Bitwise Operators
Comparison
— Comparison Operators
Error Control
— Error Control Operators
Execution
— Execution Operators
Logic
— Logical Operators
String
— String Operators
Array
— Array Operators
Type
— Type Operators
Control Structures
Introduction
if
else
elseif/else if
Alternative syntax for control structures
while
do-while
for
foreach
break
continue
switch
match
declare
return
require
include
require_once
include_once
goto
Functions
User-defined functions
Function arguments
Returning values
Variable functions
Internal (built-in) functions
Anonymous functions
Arrow Functions
First class callable syntax
Classes and Objects
Introduction
The Basics
Properties
Property Hooks
Class Constants
Autoloading Classes
Constructors and Destructors
Visibility
Object Inheritance
Scope Resolution Operator (::)
Static Keyword
Class Abstraction
Object Interfaces
Traits
Anonymous classes
Overloading
Object Iteration
Magic Methods
Final Keyword
Object Cloning
Comparing Objects
Late Static Bindings
Objects and references
Object Serialization
— Serializing objects - objects in sessions
Covariance and Contravariance
Lazy Objects
OOP Changelog
Namespaces
Overview
— Namespaces overview
Namespaces
— Defining namespaces
Sub-namespaces
— Declaring sub-namespaces
Defining multiple namespaces in the same file
Basics
— Using namespaces: Basics
Namespaces and dynamic language features
namespace keyword and __NAMESPACE__
— The namespace keyword and __NAMESPACE__ magic constant
Aliasing and Importing
— Using namespaces: Aliasing/Importing
Global space
Fallback to global space
— Using namespaces: fallback to the global space for functions and constants
Name resolution rules
FAQ
— FAQ: things you need to know about namespaces
Enumerations
Enumerations overview
Basic enumerations
Backed enumerations
Enumeration methods
Enumeration static methods
Enumeration constants
Traits
Enum values in constant expressions
Differences from objects
Value listing
Serialization
Why enums aren't extendable
Examples
Errors
Basics
Errors in PHP 7
Exceptions
Extending Exceptions
Fibers
Generators
Generators overview
Generator syntax
Comparing generators with Iterator objects
Attributes
Attributes overview
Attribute syntax
Reading Attributes with the Reflection API
Declaring Attribute Classes
References Explained
What References Are
What References Do
What References Are Not
Passing by Reference
Returning References
Unsetting References
Spotting References
Predefined Variables
Superglobals
— Built-in variables that are always available in all scopes
$GLOBALS
— References all variables available in global scope
$_SERVER
— Server and execution environment information
$_GET
— HTTP GET variables
$_POST
— HTTP POST variables
$_FILES
— HTTP File Upload variables
$_REQUEST
— HTTP Request variables
$_SESSION
— Session variables
$_ENV
— Environment variables
$_COOKIE
— HTTP Cookies
$php_errormsg
— The previous error message
$http_response_header
— HTTP response headers
$argc
— The number of arguments passed to script
$argv
— Array of arguments passed to script
Predefined Exceptions
Exception
ErrorException
ClosedGeneratorException
— The ClosedGeneratorException class
Error
ArgumentCountError
ArithmeticError
AssertionError
DivisionByZeroError
CompileError
ParseError
TypeError
ValueError
UnhandledMatchError
FiberError
Predefined Interfaces and Classes
Traversable
— The Traversable interface
Iterator
— The Iterator interface
IteratorAggregate
— The IteratorAggregate interface
InternalIterator
— The InternalIterator class
Throwable
ArrayAccess
— The ArrayAccess interface
Serializable
— The Serializable interface
Closure
— The Closure class
stdClass
— The stdClass class
Generator
— The Generator class
Fiber
— The Fiber class
WeakReference
— The WeakReference class
WeakMap
— The WeakMap class
Stringable
— The Stringable interface
UnitEnum
— The UnitEnum interface
BackedEnum
— The BackedEnum interface
SensitiveParameterValue
— The SensitiveParameterValue class
__PHP_Incomplete_Class
— The __PHP_Incomplete_Class class
Predefined Attributes
Attribute
— The Attribute attribute
AllowDynamicProperties
— The AllowDynamicProperties attribute
Deprecated
— The Deprecated attribute
Override
— The Override attribute
ReturnTypeWillChange
— The ReturnTypeWillChange attribute
SensitiveParameter
— The SensitiveParameter attribute
Context options and parameters
Socket context options
— Socket context option listing
HTTP context options
— HTTP context option listing
FTP context options
— FTP context option listing
SSL context options
— SSL context option listing
Phar context options
— Phar context option listing
Context parameters
— Context parameter listing
Zip context options
— Zip context option listing
Zlib context options
— Zlib context option listing
Supported Protocols and Wrappers
file://
— Accessing local filesystem
http://
— Accessing HTTP(s) URLs
ftp://
— Accessing FTP(s) URLs
php://
— Accessing various I/O streams
zlib://
— Compression Streams
data://
— Data (RFC 2397)
glob://
— Find pathnames matching pattern
phar://
— PHP Archive
ssh2://
— Secure Shell 2
rar://
— RAR
ogg://
— Audio streams
expect://
— Process Interaction Streams
Found A Problem?
Learn How To Improve This Page
•
Submit a Pull Request
•
Report a Bug
+
add a note
User Contributed Notes
There are no user contributed notes for this page.
↑
and
↓
to navigate •
Enter
to select •
Esc
to close
Press
Enter
without selection to search using Google