1年以上PHPを勉強していて、かなり複雑なメモが溜まってしまったので、それを整理するために記事を書かせてください。
php基本部分
<font face="新宋体">PHP</font>
输出文本的基础指令:<font face="新宋体">echo</font>
和 <font face="新宋体">print</font>
。
エコーとプリントの違い
<font face="新宋体">echo</font>
是PHP语句, <font face="新宋体">print</font>
和<font face="新宋体">print_r</font>
それは関数です。ステートメントには戻り値がありません。関数は(役に立たない場合でも)戻り値を持つことができます。
1 つ以上の文字列を出力します。 <font face="新宋体">echo</font>
単純型変数(int、stringなど)の値のみを出力できます<font face="新宋体">print</font>
複合型変数(配列、オブジェクトなど)の値を出力できます<font face="新宋体">print_r</font>
<font face="新宋体">var_dump<p></p></font>
は式の型と値を返しますが、<font face="新宋体">var_dump</font>
返回表达式的类型和值,而<font face="新宋体">print_r</font>
仅返回结果,相比调试代码使用<font face="新宋体">var_dump</font>
は結果のみを返します。<font face="新宋体">を使用したデバッグ コードとの比較。 "> var_dump</font>
の方が読みやすいです。 変数
変数は、数値、テキスト文字列、配列などの値を保存するために使用されます。 PHP のすべての変数は $ 記号で始まります。
PHP には 3 つの異なる変数スコープがあります:
リーリー
<font face="新宋体">Global</font>
関数の外で宣言された変数には
関数内で宣言された変数には <font face="新宋体">LOCAL</font>
スコープがあり、関数内でのみアクセスできます。
<font face="新宋体">global</font>
キーワードは、関数内のグローバル変数にアクセスするために使用されます。
PHP 静的キーワード
通常、関数が完了/実行すると、すべての変数が削除されます。ただし、ローカル変数を削除したくない場合もあります。これを達成するにはさらなる作業が必要です。
これを実現するには、最初に変数を宣言するときに static キーワードを使用します。
リーリーphpタイプ
リーリーブール値
ブール値を指定するには、キーワード TRUE または FALSE を使用します。どちらも大文字と小文字は区別されません。
形成外科
(int) を使用して、小数を整数にキャストできます。
リーリー配列
PHPには3種類の配列があります:
リーリー添え字は整数または文字列です。
リーリー配列セルには <font face="新宋体">array[key]</font>
構文を介してアクセスできます。
注: これは、キー名を常に引用符で囲むという意味ではありません。定数や変数のキー名を引用符で囲む必要はありません。そうしないと、<font face="新宋体">PHP</font>
がそれらを解析できなくなります。
配列演算子
<font face="新宋体">+</font>
演算子は、右側の配列要素を左側の配列に追加します。キー名が両方の配列にある場合、左側の配列内の要素のみが使用され、右側の配列要素は無視されます。
オブジェクト
オブジェクトを初期化するには、new ステートメントを使用してオブジェクトを変数にインスタンス化します。
よく使われる機能
strlen() 関数は文字列の長さを計算するために使用されます。
strpos() 関数は、文字列のセグメントまたは文字列内の文字を取得するために使用されます。
定数
define() 関数を使用して定数を定義できます。定数を一度定義すると、変更したり定義を解除したりすることはできません。
よく使用される魔法の定数:
定数の定義例:
リーリーphp文字列演算子
PHP には、文字列演算子が 1 つだけあります。
連結演算子 <font face="新宋体">(.)</font>
用于把两个字符串值连接起来。如:echo "a= ".$a."<br>";
左側は文字列リテラル「a=」を変数 $a の値に接続し、2 番目は改行文字 <font face="新宋体">"<br>" に接続します<code><font face="新宋体">"<br>"</font>
php関数
函数只有在被调用时才会被执行,这点和js是一样的,同样,函数定义也是以function关键字开头的。
<code><?php<br /> function sum($x,$y){<br /> $z=$x + $y;<br /> return $z;<br /> }<br /> echo "-2+10= ".sum(-2,10);//outputs "-2+10=8"<br />?></code>
当没有<font face="新宋体">return</font>
语句时,以上将会变成"-2+10=";
流程控制
在这里,只讲下<font face="新宋体">foreach</font>
语句。
<font face="新宋体">foreach</font>
语句遍历输出数组:
语法:
<code>foreach (array_expression as $value){ statement}; foreach (array_expression as $key => $value){ statement};</code>
参数<font face="新宋体">array_expression</font>
是指定要遍历的数组,<font face="新宋体">$value</font>
是数组的值
<code><?php<br> $actors [0] ="Marry";<br> $actors [1] ="Lorry";<br> $actors [2] = "mike";<br> foreach ($actors as $values){<br> echo "Name:$values<br>"; <br>}<br>?></code>
以上代码将输出:
Name:Marry
Name:Lorry
Name:mike
两个重要的魔术方法
<code> 1. __set( )方法:这个方法用来为私有成员属性设置值的,有两个参数,第一个参数为你 要为设置值的属性名,第二个参数是要给属性设置的值,没有返回值。 2. __get()方法:这个方法用来获取私有成员属性值的,有一个参数,参数传入你要获取的成员属性的名称,返回获取的属性值,这个方法不用我们手工的去调用</code>
php中方法不区分大小写
<code>require(dirname(__FILE__).'/global.php'); //引入全局文件 require(dirname(__FILE__).'/config.ini.php'); //引入基本配置文件</code>
对象运算符和双冒号运算符
在类的成员方法里面,可以用 ->(对象运算符):<font face="新宋体">$this->property</font>
(其中 property 是该属性名)这种方式来访问非静态属性。
静态属性则是用 <font face="新宋体">::</font>
(双冒号):<font face="新宋体">self::$property</font>
来访问。
=>和->
<font face="新宋体">=></font>
数组成员访问符号,<font face="新宋体">-></font>
对象成员访问符号;
<font face="新宋体">$this</font>
-<font face="新宋体">>$name=$value</font>
:将当前类的<font face="新宋体">name</font>
变量的值设为<font face="新宋体">$value</font>
;
<font face="新宋体">$this</font>
代表了类本身,<font face="新宋体">-></font>
是访问其类成员的操作符
双冒号运算符(<font face="新宋体">::</font>
)类名<font face="新宋体">::</font>
静态属性/方法
“<font face="新宋体">::</font>
”用来调用类中静态的属性和方法
<font face="新宋体">include()</font>
:包含外部文件,语法格式为 include(string filename);
<font face="新宋体">require()</font>
:会输出错误信息,终止脚本
<font face="新宋体">include_once()</font>
:多次调用相同文件时,程序只会调用一次
<font face="新宋体">require_once()</font>
:先检查文件是否在其他地方被调用过
<font face="新宋体">array_pop()</font>
:获取并返回数组中的最后一个元素
<font face="新宋体">count()</font>
:统计数组中的元素个数
<font face="新宋体">array_search()</font>
:获取数组中元素的键名
<font face="新宋体">$array_keys()</font>
:获取数组中重复元素的所有键名
单引号和双引号
PHP把单引号中的数据视为普通字符串,不再处理。而双引号还要对其中的字符串进行处理
get和post
$_GET[ ]和$_POST[ ]全局数组:分别用来接收GET和POST方法传递到当前页面的数据。“[ ]”里面是name.
php参数传递常用的方法有3种:$_POST[ ]、$_GET[ ]、$_SESSION[ ],分别用于获取表单、URL与Session变量的值。
表单提交中get和post方式的区别归纳如下几点:
<code>GET是从服务器上获取数据,POST是向服务器传送数据。<br>GET 是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。POST是通过HTTP POST机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。<br>对于GET方式,服务器端用Request.QueryString获取变量的值,对于POST方式,服务器端用Request.Form获取提交的数据。<br>GET传送的数据量较小,不能大于2KB(这主要是因为受URL长度限制)。POST传送的数据量较大,一般被默认为不受限制。但理论上,限制取决于服务器的处理能力。<br>GET 安全性较低,POST安全性较高。因为GET在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记 录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一 同显示在用户面前。POST的所有操作对用户来说都是不可见的。</code>
在FORM提交的时候,如果不指定Method,则默认为 GET请求(.net默认是POST),Form中提交的数据将会附加在url之后,以?分开与url分开。字母数字字符原样发送,但空格转换为“+” 号,其它符号转换为%XX,其中XX为该符号以16进制表示的ASCII(或ISO Latin-1)值。GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中;GET方式提交的数据最多只能有2048字节,而POST则没有此限制。POST传递的参数在doc里,也就http协议所传递的文本,接受时再解析参数部分。获得参数。一般用POST比较好。POST提交数据是隐式的,GET是通过在url里面传递的,用来传递一些不需要保密的数据,GET是通过在URL里传递参数,POST不是。
1.GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连
2.GET方式提交的数据最多只能是1024字节,理论上POST没有限制,可传较大量的数据,IIS4中最大为80KB,IIS5中为100KB
HTTP状态码
cookie和session区别
Cookie の内容には主に、名前、値、有効期限、パス、ドメインが含まれます。パスとドメインを合わせて Cookie のスコープを形成します。有効期限が設定されていない場合は、これを意味します
Cookie の有効期間はブラウザ セッション中です。ブラウザ ウィンドウを閉じると、Cookie は消えます。ブラウザーのセッション中に保持されるこのタイプの Cookie は、セッション Cookie と呼ばれます。
セッション Cookie は通常、ハードディスクではなくメモリに保存されます。もちろん、この動作は仕様で指定されていません。有効期限が設定されている場合、ブラウザは Cookie を保存します
ハードドライブに保存し、ブラウザを閉じて再度開くと、これらの Cookie は、設定された有効期限が切れるまで有効です。
プログラムがクライアントのリクエストに対してセッションを作成する必要がある場合、サーバーはまずクライアントのリクエストにすでにセッション識別子が含まれているかどうかを確認します
(セッション ID と呼ばれます)、これが含まれている場合、このクライアントに対して以前にセッションが作成されていることを意味し、サーバーはセッション ID に従ってこのセッションを取得します
使用します (取得できません。新しいものを作成します)。クライアント リクエストにセッション ID が含まれていない場合は、このクライアントのセッションを作成し、このセッションに対応するセッションを生成します
関連付けられたセッション ID、セッション ID の値は、繰り返されず、偽造するパターンが簡単に見つからない文字列である必要があります。今回はこのセッション ID が応答されます。
保管のためにクライアントに返されます。このセッション ID を保存する方法には Cookie を使用できるため、対話プロセス中にブラウザーがルールに従ってこの ID を
に自動的に送信できます。
サーバ。
1. Cookie データはクライアントのブラウザに保存され、セッション データはサーバーに保存されます。
2. Cookie はあまり安全ではありません。ローカルに保存されている Cookie を他人が分析して騙す可能性があります
セキュリティ上の理由からセッションを使用する必要があります。
3. セッションはサーバー上に一定期間保存されます。アクセスが増加すると、サーバーのパフォーマンスがより多く消費されます
サーバーパフォーマンスの低下を考慮して、COOKIEを使用する必要があります。
4. 1 つの Cookie によって保存されるデータは 4K を超えることはできません。多くのブラウザでは、サイトで保存できる Cookie は 20 個までに制限されています。
5. そこで私の個人的な提案:
ログイン情報などの重要な情報をSESSIONとして保存します
他の情報を保持する必要がある場合は、COOKIE に配置できます
phpコード仕様
1. 変数の割り当ては等しい間隔と配置を維持する必要があります2. 各行の末尾に余分なスペースは使用できません
3. Unix 系システムでは大文字と小文字が区別されるため、ファイルの名前付けと呼び出しの大文字と小文字が一致していることを確認してください。
4. メソッド名は文字のみで構成でき、アンダースコアは使用できません。最初の文字は小文字にする必要があり、後続の各単語の最初の文字は大文字にする必要があります
5. 属性名は文字のみで構成でき、アンダースコアは使用できません⋯⋯
6. オブジェクトのメンバーにアクセスするには、常に「get」メソッドと「set」メソッドを使用する必要があります
7. クラス メンバーのメソッドがプライベートとして宣言されている場合は、二重アンダースコア「__」で始まる必要があります。パブリックとして宣言されている場合は、単一のアンダースコア「_」で始まる必要があります。いつでもアンダースコアが含まれます。
8. 頻繁に使用されるメソッドをグローバル関数として定義する必要がある場合は、クラス内で静的形式で定義する必要があります
9. 関数に名前を付けるときは、小文字とアンダースコアを使用して、関数の機能を明確に説明する必要があります。
10.ブール値とnull値はどちらも小文字です。
11. 文字列がプレーン テキストで構成されている場合 (つまり、変数が含まれていない場合)、区切り文字として常に一重引用符 (') を使用する必要があります。
12. 配列型を使用して連想配列を宣言する場合は、各行のキーと値が揃っていることを確認するために複数の行に分割する必要があります13. クラス内のすべてのコードは 4 つのスペースでインデントする必要があります
14. 変数を宣言するために var を使用することはできません。クラスのメンバー変数は、プライベート、プロテクト、およびパブリックとして宣言する必要があります。通常、クラス メンバーにアクセスするには get メソッドと set メソッドが使用されます。
15. メソッドはスコープを宣言するために常に private、protected、または public を使用する必要があります
16. 関数またはメソッド名とパラメーターの括弧の間には余分なスペースを含めることはできません
http://www.bkjia.com/PHPjc/908173.html