Lista de palabras clave

Estas palabras tienen un significado especial para PHP. Algunas representan objetos similares a funciones, otras a constantes, y así sucesivamente, pero no lo son realmente: son estructuras de lenguaje. Las palabras clave siguientes no pueden ser utilizadas como nombre de constante, de clase o de función. Sin embargo, están permitidas como nombre de propiedad, constante y de método en las clases, interfaces, traits excepto la palabra clave class que no debe ser utilizada como nombre de constante.

Palabras reservadas en PHP
__halt_compiler() abstract and array() as
break callable case catch class
clone const continue declare default
die() do echo else elseif
empty() enddeclare endfor endforeach endif
endswitch endwhile eval() exit() extends
final finally fn (disponible a partir de PHP 7.4) for foreach
function global goto if implements
include include_once instanceof insteadof interface
isset() list() match (disponible a partir de PHP 8.0) namespace new
or print private protected public
require readonly (disponible a partir de PHP 8.1.0) * require_once return static
switch throw trait try unset()
use var while xor yield
yield from        

* readonly puede ser utilizado como nombre de función.

Constantes utilizadas durante la compilación
__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__
__METHOD__ __PROPERTY__ __NAMESPACE__ __TRAIT__
add a note

User Contributed Notes 3 notes

up
25
martindilling at gmail dot com
12 years ago
RegEx to find all the keywords:

\b(
(a(bstract|nd|rray|s))|
(c(a(llable|se|tch)|l(ass|one)|on(st|tinue)))|
(d(e(clare|fault)|ie|o))|
(e(cho|lse(if)?|mpty|nd(declare|for(each)?|if|switch|while)|val|x(it|tends)))|
(f(inal|or(each)?|unction))|
(g(lobal|oto))|
(i(f|mplements|n(clude(_once)?|st(anceof|eadof)|terface)|sset))|
(n(amespace|ew))|
(p(r(i(nt|vate)|otected)|ublic))|
(re(quire(_once)?|turn))|
(s(tatic|witch))|
(t(hrow|r(ait|y)))|
(u(nset|se))|
(__halt_compiler|break|list|(x)?or|var|while)
)\b
up
18
Thomas Hansen
8 years ago
Please note that reserved words are still not allowed to be used as namespace or as part of it:

<?php
namespace MyNameSpace\List;

class
Test
{
}
?>

This will fail with a Parse error: syntax error, unexpected 'List' (T_LIST), expecting identifier (T_STRING)
up
12
Chris
12 years ago
Here they are as arrays:

<?php
$keywords
= array('__halt_compiler', 'abstract', 'and', 'array', 'as', 'break', 'callable', 'case', 'catch', 'class', 'clone', 'const', 'continue', 'declare', 'default', 'die', 'do', 'echo', 'else', 'elseif', 'empty', 'enddeclare', 'endfor', 'endforeach', 'endif', 'endswitch', 'endwhile', 'eval', 'exit', 'extends', 'final', 'for', 'foreach', 'function', 'global', 'goto', 'if', 'implements', 'include', 'include_once', 'instanceof', 'insteadof', 'interface', 'isset', 'list', 'namespace', 'new', 'or', 'print', 'private', 'protected', 'public', 'require', 'require_once', 'return', 'static', 'switch', 'throw', 'trait', 'try', 'unset', 'use', 'var', 'while', 'xor');

$predefined_constants = array('__CLASS__', '__DIR__', '__FILE__', '__FUNCTION__', '__LINE__', '__METHOD__', '__NAMESPACE__', '__TRAIT__');
?>

Along with get_defined_functions() and get_defined_constants(), this can be useful for checking eval() statements.
To Top