この記事は主に PHP 学習の基礎知識を共有するもので、これから PHP を学習し始める友人に役立つことを願っています。
1年以上PHPを勉強してきましたが、メモがかなり溜まっていて、それを整理するために記事を書かせていただきます。
php 基本部分
<span style="font-family:新宋体">PHP</span>
テキストを出力するための基本的な手順: <span style="font-family:新宋体">echo</span>
と <span style="font-family:新宋体">print</span>
。 <span style="font-family:新宋体">PHP</span>
输出文本的基础指令:<span style="font-family:新宋体">echo</span>
和 <span style="font-family:新宋体">print</span>
。
echo和print的区别
<span style="font-family:新宋体">echo</span>
是PHP语句, <span style="font-family:新宋体">print</span>
和<span style="font-family:新宋体">print_r</span>
是函数,语句没有返回值,函数可以有返回值(即便没有用)
<span style="font-family:新宋体">echo</span>
输出一个或者多个字符串。<span style="font-family:新宋体">print</span>
只能打印出简单类型变量的值(如int,string)<span style="font-family:新宋体">print_r</span>
可以打印出复杂类型变量的值(如数组,对象)
var_dump和print_r的区别
<span style="font-family:新宋体">var_dump</span>
返回表达式的类型和值,而<span style="font-family:新宋体">print_r</span>
仅返回结果,相比调试代码使用<span style="font-family:新宋体">var_dump</span>
更便于阅读。
变量
变量用于存储值,比如数字、文本字符串或数组。PHP 中的所有变量都是以 $ 符号开始的。
PHP 变量名称对大小写敏感!
PHP 有三种不同的变量作用域:
<code>local(局部)<br>global(全局)<br>static(静态)</code>
函数之外声明的变量拥有 <span style="font-family:新宋体">Global</span>
作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 <span style="font-family:新宋体">LOCAL</span>
作用域,只能在函数内部进行访问。
<span style="font-family:新宋体">global</span>
关键词用于访问函数内的全局变量。
PHP static 关键词
通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作。
要完成这一点,请在您首次声明变量时使用 static 关键词:
<code><?php <br/>function myTest() {<br/> static $x=-1;<br/> echo $x;<br/> $x--;<br/>}<br/>myTest();//-1<br/>echo "<br>";<br/>myTest();//-2<br/>echo "<br>";<br/>myTest();//-3<br/>?></code>
php类型
php类型:**PHP 支持八种原始类型。**
布尔型
要指定一个布尔值,使用关键字 TRUE 或 FALSE。两个都是大小写不敏感的。
整型
我们可以使用(int)来将小数强制类型转换成整数。
<code><?php<br/> var_dump((int)(26/3));//int(8)<br/>?></code>
数组
php中有三种数组:
<code>索引数组:就是下标是顺序整数作为作为索引(比如第几排第几列)$class[5]<br/>关联数组:就是下标是字符串作为索引(比如名字)$class2["zhangsan"]<br/>多维数组 - 包含一个或多个数组的数组</code>
下标要嘛是整数,要么是字符串。
<code><?php<br/>$array = array(<br/> "foo" => "bar",<br/> "bar" => "foo",<br/>);<br/>// 自 PHP 5.4 起<br/>$array = [<br/> "foo" => "bar",<br/> "bar" => "foo",<br/>];<br/>?></code>
数组单元可以通过 <span style="max-width:90%">array[key]</span>
语法来访问。
Note: 这并不意味着总是给键名加上引号。用不着给键名为常量或变量的加上引号,否则会使 <span style="font-family:新宋体">PHP</span>
echo と print の違い
<span style="font-family:新宋体">var_dump</span>
は式の型と値を返しますが、<span style="font- family:新宋体">print_r</span >
結果のみを返します。これは、<span style="font-family:新宋体">var_dump</span> を使用するよりも読みやすいです。 code> はコードをデバッグするためのものです。 🎜🎜🎜変数 🎜🎜🎜変数は、数値、テキスト文字列、配列などの値を保存するために使用されます。 PHP のすべての変数は $ 記号で始まります。
PHP 変数名では大文字と小文字が区別されます。 🎜🎜PHP には 3 つの異なる変数スコープがあります: 🎜<code><?php<br/>define("poems" , "Homeric epic");<br/>echo poems ;//outputs "Homeric epic" <br/>?></code>
ログイン後にコピーログイン後にコピー🎜関数の外で宣言された変数は グローバル
スコープを持ち、外部からのみアクセスできます。関数。 🎜🎜関数内で宣言された変数には <span style="font-family:新宋体">LOCAL</span>
スコープがあり、関数内でのみアクセスできます。 🎜🎜<span style="font-family:新宋体">global</span>
キーワードは、関数内のグローバル変数にアクセスするために使用されます。 🎜🎜🎜PHP 静的キーワード🎜🎜🎜 通常、関数が完了/実行すると、すべての変数が削除されます。ただし、ローカル変数を削除したくない場合もあります。これを達成するにはさらなる作業が必要です。 🎜🎜これを実現するには、最初に変数を宣言するときに static キーワードを使用します: 🎜<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>
ログイン後にコピーログイン後にコピー🎜🎜php type🎜🎜foreach (array_expression as $value){ statement};
foreach (array_expression as $key => $value){ statement};
ログイン後にコピーログイン後にコピー🎜🎜🎜🎜ブール値🎜🎜🎜 ブール値を指定するには、キーワード TRUE または FALSE を使用します。どちらも大文字と小文字は区別されません。 🎜🎜🎜整数🎜🎜🎜 (int) を使用して小数を整数にキャストできます。 🎜<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>
ログイン後にコピーログイン後にコピー🎜配列🎜🎜 PHP には 3 種類の配列があります: 🎜 1. __set( )方法:这个方法用来为私有成员属性设置值的,有两个参数,第一个参数为你 要为设置值的属性名,第二个参数是要给属性设置的值,没有返回值。
2. __get()方法:这个方法用来获取私有成员属性值的,有一个参数,参数传入你要获取的成员属性的名称,返回获取的属性值,这个方法不用我们手工的去调用
ログイン後にコピーログイン後にコピー🎜 添字は整数または文字列です。 🎜require(dirname(__FILE__).'/global.php'); //引入全局文件
require(dirname(__FILE__).'/config.ini.php'); //引入基本配置文件
ログイン後にコピーログイン後にコピー🎜配列ユニットには、<span style="font-family:新宋体">array[key]</span>
構文を通じてアクセスできます。
注: これは、キー名を常に引用するという意味ではありません。定数または変数のキー名を引用符で囲む必要はありません。そうしないと、<span style="font-family:新宋体">PHP</span>
がそれらを解析できなくなります。 🎜🎜配列演算子🎜🎜🎜🎜🎜🎜🎜🎜🎜例子名称结果$a + $b 联合 $a 和 $b 的联合$a == $b 相等 如果 $a 和 $b 具有相同的键/值对则为 TRUE$a === $b 全等 如果 $a 和 $b 具有相同的键/值对并且顺序和类型都相同则为 TRUE$a != $b 不等 如果 $a 不等于 $b 则为 TRUE$a <> $b 不等 如果 $a 不等于 $b 则为 TRUE$a !== $b 不全等 如果 $a 不全等于 $b 则为 TRUE
<span style="font-family:新宋体">+</span>
运算符把右边的数组元素附加到左边的数组后面,两个数组中都有的键名,则只用左边数组中的,右边的被忽略。
对象
要初始化一个对象,用 new 语句将对象实例到一个变量中。
常用函数
strlen() 函数用于计算字符串的长度。
strpos() 函数用于在字符串内检索一段字符串或一个字符。
常量
可以用 define() 函数来定义常量。一个常量一旦被定义,就不能再改变或者取消定义。
常用的魔术常量:
定义常量例子:
<code><?php<br/>define("poems" , "Homeric epic");<br/>echo poems ;//outputs "Homeric epic" <br/>?></code>
ログイン後にコピーログイン後にコピーphp字符串运算符
在 PHP 中,只有一个字符串运算符。
并置运算符 <span style="max-width:90%">(.)</span>
用于把两个字符串值连接起来。如:echo "a= ".$a."<br>";
左边将字符串文字"a="与变量$a的值连接,第二处是与换行符<span style="font-family:新宋体">"<br>"</span>
连接
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>
ログイン後にコピーログイン後にコピー当没有<span style="font-family:新宋体">return</span>
语句时,以上将会变成"-2+10=";
流程控制
在这里,只讲下<span style="font-family:新宋体">foreach</span>
语句。
<span style="font-family:新宋体">foreach</span>
语句遍历输出数组:
语法:
foreach (array_expression as $value){ statement};
foreach (array_expression as $key => $value){ statement};
ログイン後にコピーログイン後にコピー参数<span style="font-family:新宋体">array_expression</span>
是指定要遍历的数组,<span style="font-family:新宋体">$value</span>
是数组的值
<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
两个重要的魔术方法
1. __set( )方法:这个方法用来为私有成员属性设置值的,有两个参数,第一个参数为你 要为设置值的属性名,第二个参数是要给属性设置的值,没有返回值。
2. __get()方法:这个方法用来获取私有成员属性值的,有一个参数,参数传入你要获取的成员属性的名称,返回获取的属性值,这个方法不用我们手工的去调用
ログイン後にコピーログイン後にコピーphp中方法不区分大小写
require(dirname(__FILE__).'/global.php'); //引入全局文件
require(dirname(__FILE__).'/config.ini.php'); //引入基本配置文件
ログイン後にコピーログイン後にコピー对象运算符和双冒号运算符
在类的成员方法里面,可以用 ->(对象运算符):<span style="font-family:新宋体">$this->property</span>
(其中 property 是该属性名)这种方式来访问非静态属性。
静态属性则是用 <span style="font-family:新宋体">::</span>
(双冒号):<span style="font-family:新宋体">self::$property</span>
来访问。
=>和->
<span style="font-family:新宋体">=></span>
数组成员访问符号,<span style="font-family:新宋体">-></span>
对象成员访问符号;
<span style="font-family:新宋体">$this</span>
-<span style="font-family:新宋体">>$name=$value</span>
:将当前类的<span style="font-family:新宋体">name</span>
变量的值设为<span style="font-family:新宋体">$value</span>
;
<span style="font-family:新宋体">$this</span>
代表了类本身,<span style="font-family:新宋体">-></span>
是访问其类成员的操作符
双冒号运算符(<span style="font-family:新宋体">::</span>
)类名<span style="font-family:新宋体">::</span>
静态属性/方法
“<span style="font-family:新宋体">::</span>
”用来调用类中静态的属性和方法
<span style="font-family:新宋体">include()</span>
:包含外部文件,语法格式为 include(string filename);
<span style="font-family:新宋体">require()</span>
:会输出错误信息,终止脚本
<span style="font-family:新宋体">include_once()</span>
:多次调用相同文件时,程序只会调用一次
<span style="font-family:新宋体">require_once()</span>
:先检查文件是否在其他地方被调用过
<span style="font-family:新宋体">array_pop()</span>
:获取并返回数组中的最后一个元素
<span style="font-family:新宋体">count()</span>
:统计数组中的元素个数
<span style="font-family:新宋体">array_search()</span>
:获取数组中元素的键名
<span style="font-family:新宋体">$array_keys()</span>
:获取数组中重复元素的所有键名
单引号和双引号
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仍然有效直到超过设定的过期时间。
当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识
(称为session id),如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来
使用(检索不到,会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相
关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应
中返回给客户端保存。保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给
服务器。
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5、所以个人建议:
将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在COOKIE中
php代码规范
1. 変数の割り当ては均等な間隔と配置を維持する必要があります
2. 各行の末尾に余分なスペースを含めることはできません
3. Unix のようなシステムでは大文字と小文字が区別されるため、ファイルの名前と呼び出しが一貫していることを確認してください。機密性があります
4. メソッド名は文字のみで構成でき、アンダースコアは使用できません。最初の文字は小文字にする必要があり、後続の各単語の最初の文字は大文字にする必要があります
5。文字で構成され、アンダースコアは許可されません ⋯⋯
6. オブジェクトのメンバーにアクセスするには、常に「get」メソッドと「set」メソッドを使用する必要があります
7 クラス メンバーのメソッドがプライベートとして宣言されている場合は、次で始まる必要があります。二重アンダースコア。 protected として宣言される場合は、単一のアンダースコア「_」で始まる必要があります。 public として宣言されたメンバー属性には、いかなる場合もアンダースコアを含めることはできません。
8. 頻繁に使用されるメソッドをグローバル関数として定義する必要がある場合は、クラス内で静的な形式で定義する必要があります。
9. 関数名には小文字とアンダースコアを使用してください。関数が何をするのかを明確にします。
10.ブール値とnull値はどちらも小文字です。
11. 文字列がプレーンテキストで構成されている場合 (つまり、変数が含まれていない場合)、配列型を使用して連想配列を宣言する場合は、常に単一引用符 (') を使用する必要があります。各行のキーと値が整列するように複数の行に分割されています
13. クラス内のすべてのコードは 4 つのスペースでインデントされている必要があります
14 変数を var で宣言することはできません。 、クラスのメンバー変数は、宣言するにはプライベートであり、パブリックである必要があります。通常、クラス メンバーにアクセスするには get メソッドと set メソッドが使用されます。
15. メソッドはスコープを宣言するために常に private、protected、または public を使用する必要があります
16. 関数またはメソッド名とパラメータ括弧の間に余分なスペースは許可されません
関連する推奨事項: 4 種類 PHP の詳細な説明基本アルゴリズム
以上がphp学習の基礎知識まとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。