Recently there was a requirement for an H5 project, which required a server. After investigation, I decided to use PHP to implement an HTTP server, so I started to review the PHP syntax and record the key points so that I can review it at any time. The content is excerpted from w3school's PHP manual and reorganized according to my own understanding.
What is PHP?
PHP is an acronym for "PHP Hypertext Preprocessor"
The PHP code is executed on the server and the results are returned to the browser as plain text
PHP files can contain text, HTML, CSS and PHP code
The suffix of PHP files is ".php"
PHP scripts can be placed anywhere in the document.
PHP files usually contain HTML tags as well as some PHP script code.
PHP basic syntax
The script ends with
Statement ends with semicolon (;)
The closing tag of a code block also automatically indicates a semicolon (so you don't have to use a semicolon on the last line of a PHP code block).
// or # represents a single line comment
/**/ is a multi-line comment
Variables are case sensitive
User-defined functions, classes, and keywords that are case-insensitive (such as if, else, echo, etc.) are all
PHP Constants
Once a constant is defined, it cannot be changed or undefined
Constants are automatically global throughout the entire script
Setting a constant uses the define() function, which takes three parameters:
The first parameter defines the constant name
The second parameter defines the constant value
(Optional) The third parameter specifies whether the constant name is case-sensitive. The default is false.
<?php define("GREETING", "Welcome!"); echo GREETING; //大小写敏感的常量 define("Hello", "Welcome!", true); echo hello; //大小写不敏感的常量 ?>
Valid constant names are opened with characters or underscores
PHP Variables
Variable weak type
Variables start with a $ symbol, followed by the name of the variable, such as $x=5;
Variables declared outside a function have Global scope and can only be accessed outside the function.
Variables declared inside a function have LOCAL scope and can only be accessed inside the function.
The global keyword is used to access global variables within a function. To do this, use the global keyword in front of the variable (inside the function):
Example 1:
<?php $x=5; // 全局作用域 function myTest() { $y=10; // 局部作用域 echo "变量 x 是:$x"; // 不输出 echo "变量 y 是:$x"; // 输出 } myTest(); echo "变量 x 是:$x"; // 输出 echo "变量 y 是:$x"; // 不输出 ?>
Example 2:
<?php $x=5; $y=10; function myTest() { global $x,$y; $y=$x+$y; } myTest(); echo $y; // 输出 15 ?>
PHP Static keywords
Normally, all variables are deleted when the function completes/executes. However, sometimes I need to not delete a local variable. Achieving this will require further work.
To accomplish this, use the static keyword when you first declare the variable:
<?php function myTest() { static $x=0; echo $x; $x++; } myTest(); // 输出0 myTest(); // 输出1 myTest(); // 输出2 ?>
Then, whenever the function is called, the information stored in this variable is the information contained when the function was last called.
Note: This variable is still local to the function.

APHPDependencyInjectionContainerisatoolthatmanagesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itactsasacentralhubforcreatingandinjectingdependencies,thusreducingtightcouplingandeasingunittesting.

Select DependencyInjection (DI) for large applications, ServiceLocator is suitable for small projects or prototypes. 1) DI improves the testability and modularity of the code through constructor injection. 2) ServiceLocator obtains services through center registration, which is convenient but may lead to an increase in code coupling.

PHPapplicationscanbeoptimizedforspeedandefficiencyby:1)enablingopcacheinphp.ini,2)usingpreparedstatementswithPDOfordatabasequeries,3)replacingloopswitharray_filterandarray_mapfordataprocessing,4)configuringNginxasareverseproxy,5)implementingcachingwi

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl

TomakePHPapplicationsfaster,followthesesteps:1)UseOpcodeCachinglikeOPcachetostoreprecompiledscriptbytecode.2)MinimizeDatabaseQueriesbyusingquerycachingandefficientindexing.3)LeveragePHP7 Featuresforbettercodeefficiency.4)ImplementCachingStrategiessuc

ToimprovePHPapplicationspeed,followthesesteps:1)EnableopcodecachingwithAPCutoreducescriptexecutiontime.2)ImplementdatabasequerycachingusingPDOtominimizedatabasehits.3)UseHTTP/2tomultiplexrequestsandreduceconnectionoverhead.4)Limitsessionusagebyclosin

Dependency injection (DI) significantly improves the testability of PHP code by explicitly transitive dependencies. 1) DI decoupling classes and specific implementations make testing and maintenance more flexible. 2) Among the three types, the constructor injects explicit expression dependencies to keep the state consistent. 3) Use DI containers to manage complex dependencies to improve code quality and development efficiency.

DatabasequeryoptimizationinPHPinvolvesseveralstrategiestoenhanceperformance.1)Selectonlynecessarycolumnstoreducedatatransfer.2)Useindexingtospeedupdataretrieval.3)Implementquerycachingtostoreresultsoffrequentqueries.4)Utilizepreparedstatementsforeffi


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Dreamweaver CS6
Visual web development tools

WebStorm Mac version
Useful JavaScript development tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),
