1,introduction 2,conformance 3,terms-and-definitions 4,basic-concepts 4.1,program-structure 4.2,program-start-up 4.3,program-termination 4.4,the-memory-model 4.4.1,general 4.4.2,reclamation-and-automatic-memory-management 4.4.3,assignment 4.4.3.1,general-1 4.4.3.2,value-assignment-of-scalar-types-to-a-local-variable 4.4.3.3,value-assignment-of-object-and-resource-types-to-a-local-variable 4.4.3.4,byref-assignment-for-scalar-types-with-local-variables 4.4.3.5,byref-assignment-of-non-scalar-types-with-local-variables 4.4.3.6,value-assignment-of-array-types-to-local-variables 4.4.3.7,deferred-array-copying 4.4.3.8,general-value-assignment 4.4.3.9,general-byref-assignment 4.4.4,argument-passing 4.4.5,value-returning 4.4.6,cloning-objects 4.5,scope 4.6,storage-duration 5,types 5.1,general-2 5.2,scalar-types 5.2.1,general-3 5.2.2,the-boolean-type 5.2.3,the-integer-type 5.2.4,the-floating-point-type 5.2.5,the-string-type 5.2.6,the-null-type 5.3,composite-types 5.3.1,array-types 5.3.2,object-types 5.3.3,resource-types 6,constants 6.1,general-4 6.2,context-dependent-constants 6.3,core-predefined-constants 6.4,user-defined-constants 7,variables 7.1,general-5 7.2,kinds-of-variables 7.2.1,constants-1 7.2.2,local-variables 7.2.3,array-elements 7.2.4,function-statics 7.2.5,global-variables 7.2.6,instance-properties 7.2.7,static-properties 7.2.8,class-and-interface-constants 7.3,predefined-variables 8,conversions 8.1,general-6 8.2,converting-to-boolean-type 8.3,converting-to-integer-type 8.4,converting-to-floating-point-type 8.5,converting-to-string-type 8.6,converting-to-array-type 8.7,converting-to-object-type 9,lexical-structure 9.1,scripts 9.2,grammars 9.3,lexical-analysis 9.3.1,general-7 9.3.2,comments 9.3.3,white-space 9.3.4,tokens 9.3.4.1,general-8 9.3.4.2,names 9.3.4.3,keywords 9.3.4.4,literals 9.3.4.4.1,general-9 9.3.4.4.2,boolean-literals 9.3.4.4.3,integer-literals 9.3.4.4.4,floating-point-literals 9.3.4.4.5,string-literals 9.3.4.4.5.1,single-quoted-string-literals 9.3.4.4.5.2,double-quoted-string-literals 9.3.4.4.5.3,heredoc-string-literals 9.3.4.4.5.4,nowdoc-string-literals 9.3.4.4.6,the-null-literal 9.3.4.5,operators-and-punctuators 10,expressions 10.1,general-10 10.2,primary-expressions 10.2.1,general-11 10.2.2,intrinsics 10.2.2.1,general-12 10.2.2.2,array 10.2.2.3,echo 10.2.2.4,empty 10.2.2.5,eval 10.2.2.6,exitdie 10.2.2.7,isset 10.2.2.8,list 10.2.2.9,print 10.2.2.10,unset 10.2.3,anonymous-function-creation 10.3,postfix-operators 10.3.1,general-13 10.3.2,the-clone-operator 10.3.3,the-new-operator 10.3.4,array-creation-operator 10.3.5,subscript-operator 10.3.6,function-call-operator 10.3.7,member-selection-operator 10.3.8,postfix-increment-and-decrement-operators 10.3.9,scope-resolution-operator 10.3.10,exponentiation-operator 10.4,unary-operators 10.4.1,general-14 10.4.2,prefix-increment-and-decrement-operators 10.4.3,unary-arithmetic-operators 10.4.4,error-control-operator 10.4.5,shell-command-operator 10.4.6,cast-operator 10.4.7,variable-name-creation-operator 10.5,instanceof-operator 10.6,multiplicative-operators 10.7,additive-operators 10.8,bitwise-shift-operators 10.9,relational-operators 10.10,equality-operators 10.11,bitwise-and-operator 10.12,bitwise-exclusive-or-operator 10.13,bitwise-inclusive-or-operator 10.14,logical-and-operator-form-1 10.15,logical-inclusive-or-operator-form-1 10.16,conditional-operator 10.17,assignment-operators 10.17.1,general-15 10.17.2,simple-assignment 10.17.3,byref-assignment 10.17.4,compound-assignment 10.18,logical-and-operator-form-2 10.19,logical-exclusive-or-operator 10.20,logical-inclusive-or-operator-form-2 10.21,yield-operator 10.22,script-inclusion-operators 10.22.1,general-16 10.22.2,the-include-operator 10.22.3,the-include_once-operator 10.22.4,the-require-operator 10.22.5,the-require_once-operator 10.23,constant-expressions 11,statements 11.1,general-17 11.2,compound-statements 11.3,labeled-statements 11.4,expression-statements 11.5,selection-statements 11.5.1,general-18 11.5.2,the-if-statement 11.5.3,the-switch-statement 11.6,iteration-statements 11.6.1,general-19 11.6.2,the-while-statement 11.6.3,the-do-statement 11.6.4,the-for-statement 11.6.5,the-foreach-statement 11.7,jump-statements 11.7.1,general-20 11.7.2,the-goto-statement 11.7.3,the-continue-statement 11.7.4,the-break-statement 11.7.5,the-return-statement 11.7.6,the-throw-statement 11.8,the-try-statement 11.9,the-declare-statement 12,arrays 12.1,general-21 12.2,array-creation-and-initialization 12.3,element-access-and-insertion 13,functions 13.1,general-22 13.2,function-calls 13.3,function-definitions 13.4,variable-functions 13.5,anonymous-functions 14,classes 14.1,general-23 14.2,class-declarations 14.3,class-members 14.4,dynamic-members 14.5,constants-2 14.6,properties 14.7,methods 14.8,constructors 14.9,destructors 14.10,methods-with-special-semantics 14.10.1,general-24 14.10.2,method-__call 14.10.3,method-__callstatic 14.10.4,method-__clone 14.10.5,method-__get 14.10.6,method-__invoke 14.10.7,method-__isset 14.10.8,method-__set 14.10.9,method-__set_state 14.10.10,method-__sleep 14.10.11,method-__tostring 14.10.12,method-__unset 14.10.13,method-__wakeup 14.11,serialization 14.12,predefined-classes 14.12.1,class-closure 14.12.2,class-generator 14.12.3,class-__php_incomplete_class 14.12.4,class-stdclass 15,interfaces 15.1,general-25 15.2,interface-declarations 15.3,interface-members 15.4,constants-3 15.5,methods-1 15.6,predefined-interfaces 15.6.1,interface-arrayaccess 15.6.2,interface-iterator 15.6.3,interface-iteratoraggregate 15.6.4,interface-traversable 15.6.5,interface--serializable 16,traits 16.1,general-26 16.2,trait-declarations 16.3,trait-members 17,exception-handling 17.1,general-27 17.2,class-exception 17.3,tracing-exceptions 17.4,user-defined-exception-classes 18,namespaces 18.1,general-28 18.2,name-lookup 18.3,defining-namespaces 18.4,namespace-use-declarations A,grammar A.1,general-29 A.2,lexical-grammar A.2.1,general-30 A.2.2,comments-1 A.2.3,white-space-1 A.2.4,tokens-1 A.2.4.1,general-31 A.2.4.2,names-1 A.2.5,keywords-1 A.2.6,literals-1 A.2.6.1,general-32 A.2.6.2,boolean-literals-1 A.2.6.3,integer-literals-1 A.2.6.4,floating-point-literals-1 A.2.6.5,string-literals-1 A.2.6.6,the-null-literal-1 A.2.7,operators-and-punctuators-1 A.3,syntactic-grammar A.3.1,program-structure-1 A.3.2,variables-1 A.3.3,expressions-1 A.3.3.1,primary-expressions-1 A.3.3.2,postfix-operators-1 A.3.3.3,unary-operators-1 A.3.3.4,instanceof-operator A.3.3.5,multiplicative-operators-1 A.3.3.6,additive-operators-1 A.3.3.7,bitwise-shift-operators-1 A.3.3.8,relational-operators-1 A.3.3.9,equality-operators-1 A.3.3.10,bitwise-logical-operators A.3.3.11,logical-operators-form-1 A.3.3.12,conditional-operator-1 A.3.3.13,assignment-operators-1 A.3.3.14,logical-operators-form-2 A.3.3.15,yield-operator A.3.3.16,script-inclusion-operators-1 A.3.3.17,constant-expressions-1 A.3.4,statements-1 A.3.4.1,general-33 A.3.4.2,compound-statements-1 A.3.4.3,labeled-statements-1 A.3.4.4,expression-statements-1 A.3.4.5,iteration-statements-1 A.3.4.6,jump-statements-1 A.3.4.7,the-try-statement A.3.4.8,the-declare-statement A.3.5,functions-1 A.3.6,classes-1 A.3.7,interfaces-1 A.3.8,traits-1 A.3.9,namespaces-1 Bibliography,bibliography