PHPBasics
PHPBasics は、おそらくあなたにとってすでに慣れ親しんでいる多くのことを指します:
?構文
?演算子
?変数
?定数
?制御構造
LanguageConstructs と関数
Magicconstants
__LINE__ ファイルの現在の行番号。__FILE__ ファイルのフルパスとファイル名。インクルード内で使用した場合は、インクルードされたファイルの名前が返されます。 PHP 4.0.2 以降、__FILE__ には常に絶対パスが含まれますが、古いバージョンでは状況によっては相対パスが含まれます。
__FUNCTION__ 関数名。(PHP 4.3.0 で追加) PHP 5 以降、この定数は宣言されたとおりの関数名を返します (大文字と小文字を区別)。 PHP 4 では、その値は常に小文字です。
__CLASS__ クラス名。 (PHP 4.3.0 で追加) PHP 5 以降、この定数は宣言されたとおりのクラス名を返します (大文字と小文字は区別されます)。 PHP 4 では、その値は常に小文字です。
__METHOD__ クラスメソッド名。(PHP 5.0.0 で追加) メソッド名は宣言されたとおりに返されます (大文字と小文字が区別されます)。
PHP 言語構造
「正確な」 「LanguageConstruct」の定義。
これは、次のような「コア言語定義」のようなものです。 if (...) while (...) など PHP では、多くの初心者が *THINK* と呼ぶいくつかの一般的な関数は、実際には言語構成要素です。require include echo isset それらのほとんどは、現在マニュアルにそのように文書化されていると思います。言語構造は、大まかに言語の「文法」に対応します。
これは、それらが関数によく似ていますが、「if」や演算子 +、* などと同様に、言語の不可欠な部分であることを意味します。これは、構文的には関数のように見えますが、マニュアルでは関数の下にリストされていますが、これは単にそれらを使いやすく、理解しやすく、ドキュメント内で見つけやすくするためであることを意味します。そのため、関数の特定のルールを緩和することができます。たとえば、引数を括弧で囲む必要がありますが、実際には必要ありませんが、通常の関数と同じ外観になるように括弧が必要です。
PHP タグ
長いタグ:
スクリプトスタイルタグ:
短いタグ: short_open_tag ディレクティブ inphp.ini
…?> ( echo $vars ?>;= $vars ?>)
ASP スタイル タグ: php.ini の asp_tags ディレクティブ
(;)
長いタグを除き、他のタグは優先されません。
試験問題:
. 使用すべきでない場合短いタグ? XMLでphpを使用する場合
「ショートタグ」の問題によりどのようなエラーが発生しましたか?
A. JavaScript ソース コードを出力します。
B.解析エラー: 構文エラー、予期せぬ $end in
長いまたは通常の PHP タグを使用して、構成オプションに関係なく、アプリケーションが複数のサーバー間で移植可能であることを確認してください。
コメント
// 単一行のコメント
# 単一行コメント
/*
複数行コメント
*/
.PHPdoc コメントスタイル
単一行コメントは改行文字または PHP 終了タグで終了するため、単一の like コメントlike
//このタグ ?> PHP コードを終了することができます
意図しない出力がある可能性があります
変数
PHP は大まかに型付けされています
スカラー: ブール、文字列、整数、浮動小数点数
複合: 配列、オブジェクト
特殊: リソース、null
ScalarTypes
Strings
PHP 内ではネイティブに各文字は 1 バイトで表されるため、PHP にはマルチバイト文字セット (Unicode など) のネイティブ サポートがありません
これは PHP6 で変更されます。
PHP に課せられた制限はありません使用できる文字列の長さです。
'' 一重引用符または文字列リテラル、一重引用符内の文字は、変数やエスケープ シーケンスが解釈および置換されることなく、そのまま記録されます。
“” 二重引用符、変数、およびエスケープ シーケンスは解釈されます。そして交換されました
heredoc 構文は二重引用符と同様の方法で機能しますが、複数の行にまたがるように設計されており、エスケープせずに引用符を使用できるように設計されています。 「犬!
泥棒に向かって走りながら
挨拶;
」
また、使用される識別子は、PHP の他のラベルと同じ命名規則に従う必要があります。英数字とアンダースコアのみを含める必要があり、数字以外の文字またはアンダースコアで始める必要があります。
次の点に注意することが非常に重要です。終了識別子を含む行には、セミコロン (;) を除く他の文字は含まれません。これは、特に、識別子がインデントされてはならず、セミコロンの前後にスペースやタブがあってはいけないことを意味します。また、closedidentifier の前の最初の文字は、オペレーティング システムで定義されている改行でなければならないことを認識することも重要です。これは、たとえば Macintosh では r です。終了区切り文字 (セミコロンが続く可能性があります) の後には改行も続ける必要があります。
クラスメンバーの初期化にヒアドキュメント構文を使用することはできません。代わりに他の文字列構文を使用してください。
Integer
0
0x
整数の最大サイズはプラットフォームに依存し、最大 ~20 億が一般的です。
Float (double)
Float または double は、実際に
大きな値または非常に小さな値を表すために使用できます。浮動小数点数は、いくつかの構文を介して改ざんされる可能性があります
$a = 1.234; //標準10進表記
$b = 1.2e3; //科学的記法 (1200)
$c = 7E-10;
//科学的記法 (0.0000000007)
? float のサイズはプラットフォームに依存しますが、精度は最大 ~1.8e308 です
数値表記の変換に関する質問に遭遇しました。でも比較的簡単です。デフォルトでは、php は 10 進数です。
Boolean
True、false、0、1…大文字と小文字を区別しない
CompoundTypes
Arrays
Arrayには、他の変数タイプの任意の組み合わせを含めることができます。配列またはオブジェクト。詳細については後の講義で説明します。
オブジェクト
オブジェクトにより、データとメソッドを 1 つのまとまった構造に組み合わせることができます。
詳細については後の講義で説明します。 source は次のことを表す特別な変数です。ある種のオペレーティング システム リソース、一般的には開いているファイルまたはデータベース接続です。
リソース型の変数は出力できますが、それらの唯一の賢明な使用法は、それらを操作するように設計された関数です。
Null
Anull 変数は、その点で特別です。値も型もありません。
Nulli は、整数 0 または長さ 0 の文字列 (型を持つもの) とは異なります
定数
定数を使用すると、通常は作成できない特別な識別子を作成できます作成後に変更するには、define() 関数を使用します。定数は一度設定すると変更できません。
define('username','bob');
VariableVariables
変数 変数は便利であると同時にわかりにくいです:
$a= 'name';
$$a= "ポール";
echo$name; //Paul
Variable
変数が役立つ状況はいくつかありますが、他のプログラマを簡単に混乱させる可能性があるため、使用には注意してください
演算子
?PHP はマルチオペレーターの数:
?代入
?論理
?算術
?文字列
?比較
?ビットごと
?その他
.値による代入と参照による代入
PHP5 の PassObjects 引数
UsingBitwise演算: &(and)、|(or)、^(XOR)、~(NOT)
>>(ShiftRight)、 次の出力は次のとおりです。 ? 1&2? 2&7? 15&24? 1| 2? 16| 15? 8^6? 15^ 7
(
私たちの 8 ビット バイナリ世界のコンテキスト内で) の出力は何ですか:
?~254
? 4>> 2? 1? 5>> 2
?7
OtherOperators
@:次の式からのエラーを抑制します
``バッククォート: 内容をシェルコマンドとして実行します
(shell_exec()のショートカット).
Instanceof: 指定された変数の場合にtrueを返しますは、指定されたクラスのインスタンス、そのサブクラスの 1 つ、または指定されたインターフェイスです。
インスタンスは多少重要です。これに関する試験問題がいくつかあるためです。
ini_set("ERROR_LEVEL",E_STRICT);
$a= @myFunction();
functionmyFunction($a)
{
array_merge(array(),"");
}
$ls= `ls`;
$ a= 新しい stdClass;
if($a instanceof stdClass) { ... }
if($a !instanceof stdClass) { ... }
//ParseError
ControlStructures
If
?代替 * コードが読みやすくなります。
?Short ($express)?$var1:$var2
Switch
while
do
For
?Continue
?break
Foreach
Functions
?パラメータ
?オプション
?バイレフ
?バイヴァル
?オブジェクト
?変数関数
オブジェクト
後で!
if、while、do、for、foreach には代替構文を使用できます。{ と} を : と end(if、while、do など) に置き換えます。実際の例については、WordPress テーマ ファイルを確認してください。
$a= 0;
while($a++
{
echo$a;
}
echo$a;
return
実行を終了し、呼び出し元のスコープ、インクルードされたファイル内の関数 (呼び出し元のファイルに制御を返す) と関数/メソッドの内部から (呼び出し元のコードに制御を返す) の両方に制御を返します。
Exit
スクリプトの実行は、オプションでメッセージまたは終了ステータス (0-255) を返すことができます。
試験の質問:
PHP5 の終了スクリプト:
__halt_compiler() ;
die();
exit();
結論
?PHP タグ、使用ルールが異なる複数のタイプ (デフォルトでオン/オフになっているもの、保証されているものはどれ?)
?PHP は緩やかに型付けされていますが、内部で型付けが行われています。
?いくつかの仮定が行われます (8 進数形式)
?バイナリは面倒ですが、その
を使用します
? 制御構造には、一般的に使用される形式以外の形式があります
PHPFunctions
?可読性
?保守性
?コード分離
?モジュール性
機能?スコープ
これは、変数スコープに関連する機能をカバーするように拡張されるべきだと思います: スーパーグローバル、グローバル変数、ローカル変数、クラスメンバー(パブリック、プライベート、プロテクト、ファイナルなど)、定数、静的など
ただし、PHPの最後にはメモリが解放されます。すべてのページが読み込まれるため、静的変数であっても別の http リクエストにまたがることができます。そのため、Cookie とセッションが必要です。
global $id;
globals[‘id’];
試験には関数スコープを明確に理解する必要がある質問がいくつかあります。そして、値 Byref と Byval を渡します。
可変長引数リスト
関数ヘッダーで引数を指定する場合でも、可変長引数リストを使用できます。
func_get_args,func_num_args, func_get_arg
関数とオブジェクト、ついに友達
? PHP4 ではオブジェクトが ByVal に投げ込まれていましたが、これは、何も考えずにコピーを作成したことを意味します
? PHP5 では、オブジェクトは常に ByRef によって渡されます。明示的にクローンしない限り、それを保持しておいてください
心に留めておいてください。
結論
それらは非常に便利です
?スコープの仕組みを覚えておく必要があります
?トレースを練習してください
?オブジェクトは飛び回ります今すぐ参照してください
?Return ステートメントは関数内のどこにでも存在できます。複数のステートメントを持つこともできます
?同じ関数が何も返さない、または何かを返す状況を避けてください (Zend
Studio のコード アナライザーがこれをテストします)
関数が定義されると、PHP スコープが終了し、後で関数の残りの部分から再び再開されます。
「_」は有効な関数名ですか?
PHPArrays
列挙型配列、連想配列 (ハッシュ)、多次元配列
$a =array(5=>"b", 7, 9, "23" => 'c', 'j');
$b= array(1, 2, 3, 'f ', 'fred' => $a);値:
にアクセスするにはどうすればよいですか? 7 // $a[6];? ‘c’ // $a["23"];
? 'b' を配列 $b // $b['fred'][5]? ‘f’ // $b[3]
ArrayIteration:
foreach() を介して配列を反復処理するときは、配列のコピーに対して操作されることに注意してください。
内部配列ポインタを使用すると、この問題は発生しません。
ArrayIteration
?end() ?ポインタを最後の要素に移動します
?key() - 現在の位置からキーを取得します
?next() ? arraypointer を 1 つ進めてから
現在の値を返す
?prev() ?配列ポインタを 1 つ巻き戻してから
現在の値を返します
?reset() ?配列ポインタを
thearray
?each() の先頭にリセットします。
Internalarray ポインターはリセットできますが、単独でリセットしないでください。
Foreach()
InPHP 5 つの項目は、単に値ではなく参照によって反復処理できます。
foreach($arrayAS &$value) { … }
これはおそらく検査されるでしょう!
いくつかの配列関数:
.sort()
この関数は配列をソートします。この関数が完了すると、要素は下位から上位に配置されます。
この関数は、配列内の要素に新しいキーを割り当てます。単にキーを並べ替えるのではなく、割り当てた既存のキーを削除します。
.Ksort()
キーとデータの相関関係を維持しながら、キーごとに配列を並べ替えます。これは主に連想配列に役立ちます。
.asort()
配列を並べ替えてインデックスの関連付けを維持します
array_push() array_unshift()
array_pop() array_shift()
非連想配列の文字列はデータのキーとして使用され、キーには数字のみが含まれます
array_keys() &array_values()
bool array_walk ( array &$array, callback$funcname [,mixed $userdata] )
ユーザー定義の functionfuncname を配列 array の各要素に適用します。通常、funcname は 2 つのパラメータを取ります。配列パラメータの値が最初で、キー/インデックスが 2 番目です。オプションの userdata パラメーターが指定された場合、それは callbackfuncname の 3 番目のパラメーターとして渡されます。
array_change_key_case()
入力からのすべてのキーを小文字または大文字で含む配列を返します。番号付きインデックスはそのまま残ります。
array_merge()
array_merge() を使用して配列をマージできます。異なる連想配列に重複キーがある場合、右端の配列の値が優先されます。
配列のチャンクを切り出します
は、1 つ以上の配列の要素をマージして、1 つの配列の値が前の配列の末尾に追加されるようにします。結果の配列を返します。

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPで前処理ステートメントとPDOを使用すると、SQL注入攻撃を効果的に防ぐことができます。 1)PDOを使用してデータベースに接続し、エラーモードを設定します。 2)準備方法を使用して前処理ステートメントを作成し、プレースホルダーを使用してデータを渡し、メソッドを実行します。 3)結果のクエリを処理し、コードのセキュリティとパフォーマンスを確保します。

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPにより、インタラクティブなWebコンテンツを簡単に作成できます。 1)HTMLを埋め込んでコンテンツを動的に生成し、ユーザー入力またはデータベースデータに基づいてリアルタイムで表示します。 2)プロセスフォームの提出と動的出力を生成して、XSSを防ぐためにHTMLSPECIALCHARSを使用していることを確認します。 3)MySQLを使用してユーザー登録システムを作成し、Password_HashおよびPreprocessingステートメントを使用してセキュリティを強化します。これらの手法を習得すると、Web開発の効率が向上します。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ドリームウィーバー CS6
ビジュアル Web 開発ツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、
