ホームページ  >  記事  >  トピック  >  PHPとmySQL学習の苦い歴史を記録する

PHPとmySQL学習の苦い歴史を記録する

coldplay.xixi
coldplay.xixi転載
2020-12-02 17:20:083577ブラウズ

php mysql コラムでは学習プロセスを紹介しており、役立つ情報が満載です。

PHPとmySQL学習の苦い歴史を記録する

おすすめ: php mysql

この記事は、PHP と mySQL を学習するプロセスを記録します。以前にこれら 2 つの言語をインターネットで簡単に学び、mySQL に正常に接続してデータを挿入できる PHP を自分で書きました。しかし、それはまだ不明確であると常々感じています。そこで、O'REILLY の PHP、MySQL、JavaScript、CSS を借用しました。自分のプログラミングのアイデアを明確にし、より明確に学ぶことができ、将来プロジェクトを書くのに役立つことを願っています。

まず、これらの言語が主に何を担っているのかを見てみましょう。 PHP はサーバー上の主な作業を担当し、MySQL はすべてのデータを担当し、CSS と JavaScript は Web ページの表示を管理します。ただし、サーバーまたはページ上の情報を更新する必要がある場合には、JavaScript が PHP と通信することもできます。


PHP

PHP は比較的緩い言語です。つまり、その変数の型を使用前に宣言する必要はありません。文字列内の数値は自動的に数値型に変換できます。

PHP は変数を定義するために「$」を使用します。例: $ my_counter = 1;

空白を使用すると、コードがよりすっきりして明確になり、後から見たときに理解しやすくなります。また、他の開発者がコードを保守するのにも役立ちます。数値変数を宣言する必要がある場合、それが Int 型であっても Float 型であっても、直接宣言できます。

例: $ count = 17; $ count = 17.5;

PHP 変数の命名規則

1. 文字または '_' (アンダースコア) で始めます;

2. a-z、A-Z、0-9、および '_' (アンダースコア) のみを含めることができます;

3. スペースを含めることはできません。2 つの単語を含める必要がある場合は、' を使用する必要があります_' (アンダースコア) ) で区切ります;

4. 大文字と小文字が区別され、$High_Score と $high_score は異なる変数です。

PHP 定数 (定数)

1. 定数を宣言するのに ($) を使用する必要はありません。通常、文字またはアンダースコアで始まります

2使用できるのはdefineメソッドのみです。定数define ('TIREPRICE', 100);

3に値を割り当てます。この値はスクリプト内で変更できません。

4. 変数とは異なり、定数はスクリプト全体にわたって自動的にグローバルになります。

5. 変数の名前の前後に (_) を使用しないようにしてください。

定数を設定するには、define() 関数を使用します。この関数は 3 つのパラメータを使用します。

最初のパラメータは定数の名前を定義し、2 番目のパラメータは定数値を定義します。オプションの 3 番目のパラメータは、定数名の大文字と小文字を区別するかどうかを指定します。デフォルトは false です。

短いスタイル 短いスタイル: $tireqty は非常に便利ですが、register_globals 構成オプションを on に設定する必要があります。セキュリティ上の理由により、このオプションはデフォルトではオフになっています。

中程度のスタイル: $_POST[ 'tireqty ' ] 推奨

長いスタイル $HTTP_POST_VARS[ 'tireqty' ] は非推奨になりました

通常は中程度のスタイルを使用して変数を宣言することをお勧めします。ショートスタイルを作成してからミディアムスタイルを割り当てると、セキュリティ上の問題がなく、使いやすくなります。 $tireqty = $_POST [ 'tireqty' ] ;


PHP の文字列規則

一重引用符は、テキスト内の $ で始まる文字列を変数として扱いません。変数として扱いたい場合は、二重引用符を使用する必要があります。文字列内で一重引用符を使用したい場合は、JavaScript と同様に直接使用することはできません。一重引用符の問題を解決するには、エスケープ文字「\」が必要です。また、\t、\n、\r は二重引用符内でのみ有効です。

PHP には、複数行配列用の演算子 "<<<" も用意されており、その利点は、HTML の大きなセクションを出力するのに便利で、エスケープする必要がなく、変数を引用できることです。 「<<<」の後に任意の名前 (カスタム区切り文字) が続き、これで終わります。間に文字を入力しても表示されません。中の変数が利用可能になりますが、変数が不要な場合は「.」でつなぐことができます。このとき変数として解釈されず、通常通り出力されます。

(<<<) を使用する場合、識別子文字列の末尾 (END など) は排他的な行を占める必要があり、その前にスペースを含むコンテンツは許可されないことに注意してください。それ以降、そうでない場合、この PHP ファイルは役に立たないものと同等です。


echo コマンドと print コマンドの違い

これら 2 つのコマンドは非常に似ています。ただし、print はパラメータを必要とする関数メソッドですが、echoPHP 言語の構造体です。通常のテキスト出力では、echo は関数ではなく、戻り値を設定する必要がないため、print よりもわずかに高速です。同時に、echo は関数ではないため、多数の複雑な式には使用できませんが、print は使用できます。


PHP の function メソッド

Function は、さまざまな特殊関数を実装するコードを区別するために使用されます。たとえば、このコードは 3 行のテキストを印刷しますが、12 行以上のテキストを印刷したい場合は、これらのコードを常にコピーして貼り付ける必要があり、間違いなくコードがより複雑で大きくなります。しかし、関数を使用すると、関数を 1 回使用するだけで、十数回印刷することができます。コードがすっきりして読みやすくなります。関数は JavaScript と同じ方法で宣言されます。

例:

function longdate($timestamp){

return date("l F jS Y",$timestamp);

}


PHP 変数のスコープ

PHP 言語では、変数のスコープを決定できます。たとえば、変数内でのみ使用されます。関数、またはグローバル スコープの場合は、任意のスコープを使用できます。

ローカル変数 (ローカル変数) は、変数が作成され、関数内でのみ呼び出すことができることを意味します。これはゼロタイム ストレージであり、機能が完了すると存在しなくなります。

グローバル変数 (グローバル変数)すべてのコードからグローバル変数を呼び出せるようにする必要があるため、場合によってはグローバル変数も必要になります。グローバル変数を宣言する必要がある場合は、キーワード global を使用する必要があります。グローバル変数の使用は推奨されませんが、他に方法がない場合に使用できます。一般的なプログラムは複数の小さな部分に分割されているため、このようなデータの問題はメンテナンスが容易な小さな問題でもあります。しかし、数千行のコードを含むプログラムでグローバル変数に問題があることが判明した場合。そうなると、それを維持するには多大なエネルギーと時間がかかります。同時に、グローバル変数に名前を付けるときは、大文字を使用することをお勧めします。

静的変数 (静的変数)変数を使用し、関数内でのみ呼び出すことができることを望みながら、次回この関数で再度使用できることを望む場合を使用すると、値は元の値に戻りません。現時点では静的変数を使用する必要があります。同時に、静的変数には計算式や関数を割り当てることができず、実際の値を割り当てる必要があることに注意してください。

例:

static $int = 0; //許可

static $int = 1 2; //許可されない (解析エラーが発生します)

static $int = sqrt(144); //Disallowed

スーパーグローバル変数 (スーパーグローバル変数) PHP の多くの事前定義変数は「スーパーグローバル」です。スクリプトのすべてのスコープで使用できます。

これらのスーパーグローバル変数は次のとおりです:

$GLOBALS

$_SERVER

$_REQUEST

$_POST

$_GET

$_FILES

$_ENV

$_COOKIE

$_SESSION

これらのスーパー グローバル変数の名前アンダースコアと大文字を使用するため、プログラム内で混乱を引き起こす可能性がある名前を付けるときは重複を避ける必要があります。


PHP 式 (式)

ブール式。PHP では、TRUE の値は「1」であり、FALSE の値は NULL であることに注意してください。ヌル値。言語によっては FALSE が 0 または -1 として定義されているためです。

また、PHPはリテラル値(リテラル)の理解に応じて変数の型を判断します。

例:

$myname = "Brian";

$myage = 37;

echo "a: " . 73 . "
"; //数値リテラル

echo "b: " . "Hello" . "
"; //文字列リテラル

echo " c : " . FALSE . "
"; //定数リテラル

echo "d: " . $myname . "
"; //変数文字列リテラル

echo "e: " . $myage . "
"; //変数数値リテラル

結果は次のようになります:

a: 73 b: Hello c : d : Brian e: 37

PHP 演算子 (演算子)

PHP には、計算、文字列、論理演算などの便利な演算子が多数用意されています。シンボル。 「.」演算子は文字列を連結するために使用されます。

PHP 論理演算子 (論理演算子)

or」の戻り値はブール値です。 $x と $y の少なくとも 1 つが true の場合、true を返します。

"xor"戻り値はブール値です。条件はAかBのどちらかです。 Aの場合はTrueを返し、Bの場合もTrueを返します。ただし、A と B の場合は False を返し、A でも B でもない場合は False を返します。したがって、条件のうち 1 つだけが true の場合は、true が返されます。

PHP 結合性演算子 (結合性)

このタイプの演算子は右から左に計算されます。

オペレーター

NEW 新しいオブジェクトを作成します

!論理 NOT

~ --メントとデクリメント

- キャスト整数に変換する $c = ( int) ($a / $b);

(double) float

(string)配列へのキャスト

(オブジェクト) オブジェクトへのキャスト

@

@ は、危険な表示を抑制するためのものであり、ユーザーが気づかないように、ユーザーの身体テストを高めます。只是只、但是、但是但是但是还是。

## =割り当て

## 条件表現は、さまざまな条件に応じて個別に異なるトップ結果を生み出すことができる核心部分です。
if

switch

です。

PHP 循環 (ループ) これは、JavaScript も同様です。循環方式には、

while

do……whileおよびfor。

PHP の関数とオブジェクトの関数の良い点:1。简洁


2.语法およびその他の写本プログラムの错误

3。プログラムファイルの追加時間は短くなります

##4。同時に、各関数は一度に解析されるだけであり、何回も使用される必要はないため、実行時間が短縮されます。関数はパラメータを受け取り、このように一般的に使用することも、特殊な場合にも使用することができます。

Include

require

require()

のパフォーマンスは

include()

と似ています。異なる点は、

include()
の句では、ファイルの実行時に毎回取得と認証が行われるのに対し、

require() の場合です。これは、コードを複数回実行できる場合には、より高い効率比の require() を使用することを意味します。ドキュメント、または一連のドキュメントを循環する場合は、include()

句を使用します。

require の使用方法は次のとおりです: require("myfile.php") このステートメントは通常、PHP スクリプト プログラムの先頭に配置されます。 PHP プログラムは、実行される前に、require() ステートメントによって導入されたファイルを最初に読み取り、それを PHP スクリプト ファイルの一部にします。 include は、include("myfile.php") のように、require と同じように使用され、このステートメントは通常、処理セクションに配置されます。プロセス制御の。 PHP スクリプト ファイルは、include() ステートメントを読み取るときに、それに含まれるファイルのみを読み取ります。これにより、プログラムの実行処理を簡略化することができる。

include使用時にロード require先頭にロード

include/require_onceサフィックスは、Loaded が実行することを示します。 notload

PHP システムには、PHP プログラムをロードするときに擬似コンパイル プロセスがあり、これによりプログラムの実行速度が向上します。ただし、include ドキュメントは引き続き解釈され、実行されます。ファイル include にエラーがあり、メイン プログラムは実行を継続します ファイル require にエラーがあり、メイン プログラムが停止します。インクルードされたファイル内の内容はシステムにほとんど影響しません (ページ ファイルが制限されている場合は include を使用し、それ以外の場合は require を使用します。

require() および include() ステートメントは言語構造であり、実際の関数ではありません。php の他の言語構造 (echo() など) と同様にすることができます。 echo("ab") 形式または echo "abc" 形式を使用して文字列 abc を出力できます。 require() および include() ステートメントでは、かっこを使用せずにパラメーターを直接追加することもできます。

include_once() ステートメントと require_once() ステートメントには、スクリプトの実行中に指定されたファイルを実行することも含まれます。この動作は include() ステートメントおよび require() ステートメントに似ており、使用方法も同じです。唯一の違いは、ファイル内のコードが既にインクルードされている場合は、再度インクルードされないことです。これら 2 つのステートメントは、スクリプトの実行中に同じファイルが複数回インクルードされる可能性がある場合に使用して、関数の再定義や変数の再割り当てなどの問題を回避するためにファイルが 1 回だけインクルードされるようにする必要があります。

function_exists("関数名") は、この関数が有効かどうかを判断します。


オブジェクト オブジェクト

オブジェクト指向プログラミング OOP (オブジェクト指向プログラミング OOP) は、関数を新しいレベルに引き上げます。一部のメソッドを再利用する場合は、これらのメソッドとデータをオブジェクトに入れることを検討できます。ソーシャル ネットワーキング サイトについて考えてみましょう。これには多くの部分があります。 1 つのコンポーネントは、すべてのユーザー機能を管理することです。たとえば、新規ユーザーの登録や既存ユーザーの情報変更を許可します。通常、これらを管理するいくつかの関数を作成し、MySQL データベースにすべてのユーザーのログを要求します。オブジェクトがわかったら、User という名前のオブジェクトを作成し、すべてのデータとメソッドをこのオブジェクトに入れることができます。したがって、ユーザーのデータを操作する必要があるときはいつでも、User クラスに関連するオブジェクトを作成するだけで済みます。オブジェクト内のデータはプロパティと呼ばれ、オブジェクト内の関数はメソッドと呼ばれます。クラスの外にクラスが必要な場合、このクラスは User クラスによく似ていますが、いくつかの違いがあります。その場合は、User クラスを継承する必要があります。そして、元の User クラスを親クラス (スーパークラス) と呼び、新しいクラスをサブクラス (サブクラス/派生クラス) と呼びます。

クラスの宣言

オブジェクトを使用する前に、キーワード class を使用してクラスを定義する必要があります。クラスの定義は、クラス名 (大文字と小文字が区別されます)、クラスの属性、およびクラスのメソッドで構成されます。 「->」を使用して変数/プロパティに値を割り当てることができます。これは $ で宣言する必要のない変数です。

コンストラクター (コンストラクター)

クラス内にパラメーターがあり、クラスと同じ名前を持つメソッドをコンストラクターと呼びます。現在、多くの人がコンストラクターの名前に __construct を使用しています。オブジェクトが不要になった場合は、デストラクターを呼び出して、オブジェクトが占有しているメモリを解放する必要があります。ただし、システムが特定のメモリを自動的に解放するため、デストラクターを設計する必要はありません。動的メモリを使用しない場合は、どのメモリを解放するかをシステムに指示するデストラクタを設計する必要があります。

メソッドの宣言 (メソッド)

メソッドの宣言は関数の宣言とよく似ていますが、それでもいくつかの違いがあります。たとえば、メソッドの名前は 2 つのアンダースコア (__) で始まります。 $this は現在のオブジェクトを参照し、このオブジェクトのプロパティ値を返します。

静的メソッド (静的メソッド)

PHP プログラミングでは、static キーワードは、プロパティまたはメソッドがクラスの特定の部分ではなく、クラスに関連していることを宣言します。クラス。特定のインスタンスに関連するため、そのような属性またはメソッドは「クラス属性」または「クラス メソッド」とも呼ばれます。

アクセス制御権限が許可されている場合は、このクラスのオブジェクトを作成する必要はなく、クラス名に 2 を加えたものを直接使用します。コロン「::」で呼び出されます。

User::pwd_string();

class User

{

static function pwd_string()

{

echo "パスワードを入力してください";

}

}

?>

プロパティの宣言

プロパティの宣言はクラス内にある必要はありませんでは、クラスに属性とメソッドはありませんが、それでも有効です。ただし、自分自身や他の人がコードをよりよく理解し、維持できるようにするために、クラスに属性の宣言を入れることをお勧めします。

$object1 = 新しいユーザー();

$object1->name = "アリス";

echo $object1->name;

class User {}

?>

定数の宣言

定数を定義するには、定数名の前に const を追加する必要があります。定数名は通常、目立たせるために大文字を使用します。定数/変数でキーワード self を 2 つのコロン (::) で使用すると、 を直接参照できます。

プロパティとメソッドのスコープ

PHP には、プロパティとメソッドのスコープを制御するための 3 つのキーワードが用意されています。

1. public - これらのプロパティは、

var および public キーワードを使用して宣言されます。 public と var は互換性がありますが、これは眉をひそめます。外部コードがこのプロパティを呼び出したい場合、または拡張クラスがそれを継承する必要がある場合は、public を使用して宣言する必要があります。

2. protected - これらのプロパティとメソッドは、オブジェクトおよびサブクラス内のメソッドによってのみ参照できます。外部コードから呼び出されたくないが、拡張クラスがそれを継承したい場合は、 protected を使用してそれを宣言できます。

3. private - これらのメンバーは同じクラスによってのみ参照でき、サブクラスはそれらを参照できません。これらのメンバーを外部コードのメソッドまたはクラスによって呼び出さない場合は、private を使用して宣言する必要があります。

静的プロパティとメソッド

静的メソッドは直接呼び出すことができますが、プロパティは直接呼び出すことができません。プロパティを呼び出すときは、キーワード self と二重コロンを使用して、クラス内の静的プロパティを呼び出すことができます。

継承

任意のクラスを継承できます。コードの重複を減らし、小さな部分を変更し、別の場所を調整するだけです。拡張機能を宣言するには、キーワード

extends を使用します。


PHP 配列 (配列)

is_array($array_name)配列が有効かどうかを判断するためのブール値を返します。

sort($array_name, SORT_NUMERIC/STRING)数値と文字列を小さい順に並べ替えます。

rsort($array_name, SORT_NUMERIC/STRING)数値と文字列で大きい順から小さい順に並べ替えます。

shuffle($array_name)配列をシャッフルし、ランダムに並べ替えます。

explode(' ',"string")これは非常に便利なメソッドで、要件に従って入力文字列を個々の要素に分割し、配列に入れます。最初のパラメータは分割する基準であり、2 番目のパラメータは入力する文字列です。

extract()このメソッドは、配列をキーと値のペアの形式に簡単に変換できます。 $_POST$_GET によく使用されます。

extract(array,extract_rules,prefix)3 つのパラメータがあります。

最初の配列は必須です。使用する入力を指定します。

2 番目の extract_rules はオプションです。 extract() 関数は、各キー名が正当な変数名であるかどうかをチェックし、シンボル テーブル内の変数名と競合するかどうかもチェックします。不正なキー名、数値名、および競合するキー名の処理は、このパラメータに基づいて決定されます。次の値のいずれかを指定できます:

可能な値:

  • EXTR_OVERWRITE - デフォルト。競合がある場合、既存の変数は上書きされます。

  • EXTR_SKIP - 競合がある場合は、既存の変数を上書きしないでください。 (配列内の同じ名前の要素は無視します)

  • EXTR_PREFIX_SAME - 競合がある場合は、変数名の前にプレフィックスを付けます。 PHP 4.0.5 以降、これには数値インデックスの処理も含まれます。

  • EXTR_PREFIX_ALL - すべての変数名に接頭辞を付けます (3 番目のパラメーター)。

  • EXTR_PREFIX_INVALID - 不正な変数名または数値変数名のみにプレフィックスを付けます。このタグはPHP 4.0.5で新たに追加されました。

  • EXTR_IF_EXISTS - 現在のシンボル テーブルに既に存在する場合にのみ、同じ名前の変数の値を上書きします。その他は加工しておりません。これは、一連の正当な変数が定義されており、$_REQUEST などの配列から値を抽出してこれらの変数を上書きする場合に使用できます。このタグはPHP 4.2.0で新たに追加されました。

  • EXTR_PREFIX_IF_EXISTS - 現在のシンボル テーブルに同じ名前の変数がすでに存在する場合にのみ、プレフィックス付きの変数名が作成され、それ以外は何も処理されません。このタグはPHP 4.2.0で新たに追加されました。

  • EXTR_REFS - 変数を参照として抽出します。これは、インポートされた変数が依然として var_array パラメーターの値を参照していることを強く示しています。このフラグは単独で使用することも、extract_type で OR を使用して他のフラグと組み合わせて使用​​することもできます。このタグはPHP 4.3.0で新たに追加されました。

3 番目のパラメータであるプレフィックスはオプションです。プレフィックスは、extract_type の値が EXTR_PREFIX_SAME、EXTR_PREFIX_ALL、EXTR_PREFIX_INVALID、または EXTR_PREFIX_IF_EXISTS の場合にのみ必要であることに注意してください。プレフィックスを付加した結果が正当な変数名ではない場合、シンボルテーブルにはインポートされません。プレフィックスと配列キー名の間にアンダースコアが自動的に追加されます。

コードは次のとおりです:

$a = 'Original';

$my_array = array(" a" = > "猫","b" => "犬", "c" => "馬");

extract($my_array);

echo " \$a = $a; \$b = $b; \$c = $c";

?>

出力:

$a = 猫;

$b = 犬;

$c = 馬

すべてのパラメータを使用します:

コードは次のとおりです:

< ;?php

$a = 'オリジナル';

$my_array = array("a" => "猫","b" => " Dog", "c" => "Horse");

extract($my_array, EXTR_PREFIX_SAME, 'dup');

echo "\$a = $a; \$b = $b; \$ c = $c; \$dup_a = $dup_a;";

?>

出力:

$a = オリジナル;

$b = Dog;

$c = Horse;

$dup_a = Cat;

action.php では、extract( ) グローバル データ $_POST への関数 ロック解除:

action.php

コードは次のとおりです:

抽出($_POST); // $username = $_POST['username']; //$password = $_POST['password'];

?>

と同等

compact(var1,var2 ...)関数は、パラメーターによって取得される変数で構成される配列を作成します。パラメータに配列がある場合は、配列内の変数の値も取得されます。

この関数によって返される配列は連想配列であり、キー名は関数のパラメーター、キー値はパラメーター内の変数の値です。

この関数によって実行される動作は、

extract() とはまったく逆です。

例 1

変数に一致しない文字列と変数名の配列を使用します:

$firstname = "ビル";

$lastname = "ゲイツ";

$age = "60";

$name = array("firstname", "lastname ");

$result =compact($name, "location", "age");

print_r($result);

?>

出力結果:

Array ([firstname] => Bill [lastname] => Gates [age] => 60 )

その他の関連メソッド:

current() - 配列内の現在の要素の値を返します。

end() - 内部ポインタを配列の最後の要素に指します。

next() - 内部ポインタを配列内の次の要素にポイントし、出力

prev() -内部ポインタを配列にポイントします。前の要素を入力して出力します。

each() - 現在の要素のキー名とキー値を返し、内部ポインタを前方に移動します


printf(arg1,arg2,agr)関数はフォーマットされた文字列を出力します。 arg1arg2arg パラメータは、メイン文字列のパーセント記号 (%) 記号の位置に挿入されます。この関数はステップごとに実行されます。最初の % 記号には arg1 を挿入し、2 番目の % 記号には arg2 を挿入します。 #########パラメーター 文字列とその中の変数のフォーマット方法を指定します。

# Positive Numbers)

2)

E-大文字の科学表記法(例:1.2e2)

%u-符号 (0 以上)

%f - 浮動小数点数 (ローカル設定)

%f -浮動小数点数 (非ローカル設定)

%G -shorter%e and%f

##zhi -shorter%e and%f

なぜなら大文字) ###### % と文字の間に置く必要があります (例: %.2f):

(数字の意味を定義するために先行します。デフォルトでは、負の数のみがマークされ、正の数字はマークされていません)

#デフォルトはスペースです。 )

値)

[0-9](小数点以下の場所の数または最大文字列の長さを指定)

上記の形式の値が複数ある場合使用する場合は、上記の順序で使用する必要があり、中断することはできません。

arg1 format 文字列の最初の % 記号に挿入するパラメータを指定します。

Arg2 format 文字列の 2 番目の % 記号に挿入するパラメータを指定します。

arg format 文字列の 3 番目、4 番目などの % 記号に挿入するパラメータを指定します。

PHP printf() 関数


付録:

構文

# 操作/məˈnɪpjuleɪt/操作

コロン/ˈkəʊlən /結腸

以上がPHPとmySQL学習の苦い歴史を記録するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjianshu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。