PHPBasics
PHPBasics refers to a number of things that
arelikely already second nature to you:
?Syntax
?Operators
?Variables
?Constants
?Control Structures
LanguageConstructs and Functions
Magicconstants
__LINE__ The current linenumber of the file.
__FILE__ The full path andfilename of the file. If used inside an include, the name of theincluded file is returned. Since PHP 4.0.2, __FILE__always contains an absolute path whereas in older versions itcontained relative path under some circumstances.
__FUNCTION__ The function name.(Added in PHP 4.3.0) As of PHP 5 this constant returns the functionname as it was declared (case-sensitive). In PHP 4 its value isalways lowercased.
__CLASS__ The class name. (Addedin PHP 4.3.0) As of PHP 5 this constant returns the class name as itwas declared (case-sensitive). In PHP 4 its value is alwayslowercased.
__METHOD__ The class method name.(Added in PHP 5.0.0) The method name is returned as it was declared(case-sensitive).
PHPlanguage construct
The "exact" definition for "LanguageConstruct".
It's kind of like the "core languagedefinition" of things such as: if (...) while (...) and so on In PHP, a handful of common things that manybeginners *THINK* are functions are actually Language Constructs:require include echo isset I belive most of them are documented assuch in the manual now. Language Construct roughly corresponds to the"grammar" of the language, if you will.
Thismeans that they are integral part of the language, just like 'if', orany operator +, *, etc, though they look pretty much like functions.It means that though syntactically they look a functions and in themanual they are listed under functions, this is only to make themeasy to use, understand and locate in the documentation. That is whycertain rules for functions can be relaxed, such as requiringparenthesis around its arguments, which are not actually needed butare there so that they have the same look as regular functions.
PHP Tags
Long tags:
Script syle tags:
Short tags: short_open_tag directive inphp.ini
…?> ( echo $vars ?>;= $vars ?>)
ASP style tags: asp_tags directive inphp.ini
(;)
Except the long tags, other tags are notpreferred.
Exam questions:
.When you should not use short tags? When usephp with XML.
What kind of errors occurred due to the “shorttags” problem?
A. output javascript source code;
B. Parse error: syntax error,unexpected $end in
Use the long or regular PHP tags to ensureyour application will be portable across multiple servers regardlessof configuration options.
Comments
// single line comment
# single line comment
/*
Multi-line comment
*/
.PHPdoc comment style
Single line comments are ended by either thenewline character or a closing PHP tag, so a single like comment like
//This tag ?> can end PHP code
Can have unintended output
Variables
PHPis loosely typed.
Scalar:Boolean, string, integer, float
Compound:array, object
Special:resource, null
ScalarTypes
Strings
Natively within PHP each character is represented by asingle byte, as such PHP has no native support for multi-bytecharacter sets (like Unicode)
This changeswith PHP6.
There is no PHP imposed limit on the length of the strings youcan use.
‘’ The single quote or string literal, characters within singlequotes will be recorded as is, without variable or escape sequencesinterpreted and replaced.
“” The double quotes, variables and escape sequnces will beinterpreted and replaced
Theheredoc syntax functions in a similar manner to double quotes, but isdesigned to span multiple lines, and allow for the use of quoteswithout escaping.
$greeting=
Shesaid "That is $name's" dog!
Whilerunning towards the thief
GREETING;
Also,the identifier used must follow the same naming rules as any otherlabel in PHP: it must contain only alphanumeric characters andunderscores, and must start with a non-digit character or underscore.
Itis very important to note that the line with the closing identifiercontains no other characters, except possibly a semicolon (;). Thatmeans especially that the identifier may not be indented, and theremay not be any spaces or tabs after or before the semicolon. It'salso important to realize that the first character before the closingidentifier must be a newline as defined by your operating system.This is \r on Macintosh for example. Closing delimiter (possiblyfollowed by a semicolon) must be followed by a newline too.
Itis not allowed to use heredoc syntax in initializing class members.Use other string syntaxes instead.
Integer
0
0x
Maximum size of an integer is platformdependent, a maximum of ~2Billion is common.
Float (double)
Floats, or doubles, can be used to representreally
large or really small values. Floats can beentered
via several syntaxes
$a = 1.234; //Standard decimal notation
$b = 1.2e3; //Scientific notation (1200)
$c = 7E-10;
//Scientific notation (0.0000000007)
? The size of a float is platform-dependent,although a
maximum of ~1.8e308 with a precision
I encountered a questions on the numbernotation conversion. But is relative easy. By default, php is outdecimal numbers.
Boolean
True, false, 0, 1… case-insensitive
CompoundTypes
Arrays
Arrays cancontain any combination of other variable types, even arrays orobjects.
More details onlater lectures.
Objects
Objects allowdata and methods to be combined into one cohesive structure.
More details onlater lectures.
SpecialTypes
Resource
Aresource is a special variable that represents some sort of operatingsystem resource, generally an open file or database connection.
Whilevariables of the type resource can be printed out, their onlysensible use is with the functions designed to work with them.
Null
Anull variable is special in that it has no value and no type.
Nullis not the same as the integer zero or an zero length string (whichwould have types)
Constants
Constants allowyou to create a special identifier that can not be changed oncecreated, this is done using the define() function. Constants can notbe changed once set.
define('username','bob');
VariableVariables
Variable Variables are bothuseful and confusing:
$a= 'name';
$$a= "Paul";
echo$name; //Paul
There are several situationsin which Variable
Variablescan be useful, but use them with care as
theycan easily confuse other programmers.
Operators
?PHP supports a multitude of Operators:
?Assignment
?Logical
?Arithmetic
?String
?Comparison
?Bitwise
?Other
.AssignmentBy Value vs By Reference
PassObjects argument in PHP5.
UsingBitwise Operations: &(and), |(or), ^(XOR), ~(NOT)
>>(ShiftRight),
Whatis the output of:
? 1& 2
? 2& 7
? 15& 24
? 1| 2
? 16| 15
? 8^ 6
? 15^ 7
Whatis the output of (within the context of
our8 bit binary world):
?~254
? 4>> 2
? 1
? 5>> 2
?7
OtherOperators
@:Suppresses errors from the following expression
``backticks:Execute the contents as a shell command
(shortcutfor shell_exec()).
Instanceof:Returns true if the indicated variable is an instance of thedesignated class, one of it’s subclasses or a designated interface.
Instanceofis somewhat important, cause I encounter some exam questionsregarding this.
ini_set("ERROR_LEVEL",E_STRICT);
$a= @myFunction();
functionmyFunction($a)
{
array_merge(array(),"");
}
$ls= `ls`;
$a= new stdClass;
if($a instanceof stdClass) { ... }
if($a !instanceof stdClass) { ... }
//ParseError
ControlStructures
If
?Alternate * code morereadable.
?Short ($express)?$var1:$var2
Switch
While
do
For
?Continue
?break
Foreach
Functions
?Paramaters
? Optional
? Byref
? Byval
? Objects
? Variable functions
Objects
Later!
if,while, do, for, foreach can have alternate syntax, replace the { and} with : and end(if, while, do etc). Check some WordPress theme filefor real world example.
$a= 0;
while($a++
{
echo$a;
}
echo$a;
return
Returnends execution and returns control to the calling scope, functionsboth inside an included file (returning control to the calling file)and from inside a function/method (returning control to the callingcode).
Exit
Haltexecution of the script, can optionally return a message, or an exitstatus (0-255).
Arare exam questions:
End ascript in PHP5:
__halt_compiler() ;
die();
exit();
Conclusion
?PHP Tags, multiple types withdifferent use rules (which ones are on/off by default, which ones aguaranteed?)
?PHP is loosely typed, but there istyping going onunderneath the hood
?Some assumptions are made (octalformat)
?Binary is a pain in the neck, but ithas its
uses
?Control structures have formats otherthan
theones commonly uses
PHPFunctions
?Readability
?Maintainability
?Code separation
?Modularity
Functions? Scope
Ithink this should expanded to cover the features related to variablescope: Super Global, global variable, local variables, classmembers(public, private, protect, final etc), constant, static etc.
ButPHP free memory on the end of every page load, so even staticvariable can across separate http request; that’s why we needcookies and sessions.
global $id;
globals[‘id’];
Theexam has several questions will need you to clearly understand theFunction Scope. And pass value Byref and Byval.
variable-lengthargument lists
Youcan use variable-length argument lists even if you do specifyarguments in the
functionheader.
func_get_args,func_num_args, func_get_arg
Functions& Objects, Friends at last
? InPHP4 Objects were thrown around ByVal,this meant that you made copies without
eventhinking about it.
? InPHP5 Objects are always passed ByRefunless you explicitly clone it, keep that in
Mind.
Conclusion
They’reterribly useful
?You have to remember how scope works
?Practice tracing
?Objects fly around by reference now
?Return statements can exist anywherewithin thefunction, you can even have several
?Avoid situations where the samefunction mayreturn nothing, or something (Zend
Studio’sCode Analyzer tests for this)
Whathappens if a function is defined then the PHP scope ends, thenresumes again later with the remainder of the function.
Is“_” a valid function name?
PHPArrays
EnumeratedArrays, Associative Arrays (hashes), Multi Dimensional Arrays
$a =array(5=>"b", 7, 9, "23" => 'c', 'j');
$b= array(1, 2, 3, 'f', 'fred' => $a);
How do I access thevalue:
? 7 // $a[6];
? ‘c’ // $a["23"];
? ‘b’ through the array $b // $b['fred'][5]
? ‘f’ // $b[3]
ArrayIteration:
Wheniterating through an array via foreach() keep in mind it operates ona copy of the array.
Usingthe internal array pointer doesn’t have this problem.
ArrayIteration
?end() ? Move pointer tolast element
?key() - Retreives keyfrom current position
?next() ? Advances arraypointer one spot then
returnscurrent value
?prev() ? Rewinds thearray pointer one spot, then
returnsthe current value
?reset() ? Resets thearray pointer to the beginning of
thearray
?each() ? Returns the
Internalarray pointers can be reset, but don’t reset on their own.
Foreach()
InPHP 5 items can be iterated over by reference rather than simply byvalue.
foreach($arrayAS &$value) { … }
Thisis likely will be examed!
SomeArray functions:
.sort()
Thisfunction sorts an array. Elements will be arranged from lowest tohighest when this function has completed.
This function assignsnew keys for the elements in array. It will remove any existing keysyou may have assigned, rather than just reordering thekeys.
.Ksort()
Sorts an array by key, maintaining key todata correlations. This is useful mainly for associativearrays.
.asort()
Sort an array and maintain indexassociation
array_push() array_unshift()
array_pop() array_shift()
Inassociative arrays strings are used to key the data, keys containingonly digits are cast to integers.
array_keys() &array_values()
bool array_walk ( array &$array, callback$funcname [, mixed $userdata] )
Applies the user-defined functionfuncname to each element of the array array. Typically, funcnametakes on two parameters. The array parameter's value being the first,and the key/index second. If the optional userdata parameter issupplied, it will be passed as the third parameter to the callbackfuncname.
array_change_key_case()
Returns an array withall keys from input lowercased or uppercased. Numbered indices areleft as is.
array_merge()
You can merge arrays usingarray_merge(), when different associative arrays have duplicate keys,the values in the rightmost array takeprecedence.
array_splice()
Cut out a chunk of anarray
array_merge_recursive()
merges the elements of one ormore arrays together so that the values of one are appended to theend of the previous one. It returns the resulting array.
Ifthe input arrays have the same string keys, then the values for thesekeys are merged together into an array, and this is done recursively,so that if one of the values is an array itself, the function willmerge it with a corresponding entry in another array too. If,however, the arrays have the same numeric key, the later value willnot overwrite the original value, but will be appended.

PHP在現代Web開發中仍然重要,尤其在內容管理和電子商務平台。 1)PHP擁有豐富的生態系統和強大框架支持,如Laravel和Symfony。 2)性能優化可通過OPcache和Nginx實現。 3)PHP8.0引入JIT編譯器,提升性能。 4)雲原生應用通過Docker和Kubernetes部署,提高靈活性和可擴展性。

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

PHP和Python各有優勢,適合不同場景。 1.PHP適用於web開發,提供內置web服務器和豐富函數庫。 2.Python適合數據科學和機器學習,語法簡潔且有強大標準庫。選擇時應根據項目需求決定。

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP成為許多網站首選技術棧的原因包括其易用性、強大社區支持和廣泛應用。 1)易於學習和使用,適合初學者。 2)擁有龐大的開發者社區,資源豐富。 3)廣泛應用於WordPress、Drupal等平台。 4)與Web服務器緊密集成,簡化開發部署。

PHP在現代編程中仍然是一個強大且廣泛使用的工具,尤其在web開發領域。 1)PHP易用且與數據庫集成無縫,是許多開發者的首選。 2)它支持動態內容生成和麵向對象編程,適合快速創建和維護網站。 3)PHP的性能可以通過緩存和優化數據庫查詢來提升,其廣泛的社區和豐富生態系統使其在當今技術棧中仍具重要地位。

在PHP中,弱引用是通過WeakReference類實現的,不會阻止垃圾回收器回收對象。弱引用適用於緩存系統和事件監聽器等場景,需注意其不能保證對象存活,且垃圾回收可能延遲。

\_\_invoke方法允許對象像函數一樣被調用。 1.定義\_\_invoke方法使對象可被調用。 2.使用$obj(...)語法時,PHP會執行\_\_invoke方法。 3.適用於日誌記錄和計算器等場景,提高代碼靈活性和可讀性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Dreamweaver CS6
視覺化網頁開發工具