Php学了一年多,笔记积累了相当多,也相当杂。写一篇文章整理一下。
php的基本部分。
PHP输出文本的基本说明:回显和打印。
回声和印刷的区别
Echo是PHP语句,print和print_r是函数,语句没有返回值,函数可以有返回值(即使没有用)。
回声输出一个或多个字符串。Print只能打印简单类型变量(如int、string)的值。Print _ r可以打印复杂类型变量(如数组和对象)的值。
var_dump和print _ r之间的区别。
Var_dump返回表达式的类型和值,而print_r只返回结果,这比在调试代码中使用var_dump更容易读取。
可变的
变量用于存储值,如数字、文本字符串或数组。PHP中的所有变量都以$符号开头。PHP变量名区分大小写!
PHP有三个不同的变量范围:
在局部(局部)全局(静态)函数外声明的变量具有全局范围,只能在函数外访问。
函数内部声明的变量具有LOCAL作用域,只能在函数内部访问。
Global关键字用于访问函数中的全局变量。
PHP静态关键字
一般来说,当一个函数完成/执行时,所有变量都会被删除。然而,有时我不需要删除局部变量。要做到这一点,还需要做进一步的工作。
为此,请在首次声明变量时使用static关键字:
?php函数MyTest(){ static $ x=-1;echo $ x;$ x-;} MyTest();///-1e CHO ' br ';myTeSt();//-2 echo ' br ';myTeSt();//-3?Php类型
Php类型:*PHP支持八种原始类型。* *
布尔型
若要指定布尔值,请使用关键字“真”或“假”。两者都不区分大小写。
整数
我们可以使用(int)将十进制强制类型转换为整数。
?PHP var _ dump((int)(26/3));//int(8)?排列
php中有三个数组:
索引数组:下标是作为索引的顺序整数(如行和列)$class[5]关联数组:下标是作为索引的字符串(如名称)$ class2 ['zhangshan']多维数组-包含一个或多个数组的数组下标是整数或字符串。
?php$array=array('foo'='bar ',' bar'='foo ',);//从PHP 5.4开始,$ array=['foo'=' bar ',' bar'=' foo ',];可以通过数组[key]语法访问数组单元格。注:这并不意味着键名总是被引用。不需要引用那些键名为常量或变量的,否则PHP无法解析。
数组运算符示例名称结果$a $b Union $a和$b Union $a==$b Equal True如果$a和$b具有相同的键/值对$a==$b Equal True如果$a和$b具有相同的键/值对并且具有相同的顺序和类型。=$b不等如果$a不等于$b,那么如果$a不等于$b,那么就是TRUE$a!==$b不相等。如果$a不等于$b,则为真
运算符将右数组元素追加到左数组中。两个数组中的键名只在左数组中使用,右数组被忽略。
目标
若要初始化对象,请使用new语句将对象实例化为变量。
公共函数
strlen()函数用于计算字符串的长度。strpos()函数用于检索字符串或字符串中的字符。
常数
您可以使用define()函数来定义常数。一旦定义了常数,它就不能被更改或未定义。常用的魔法常数:
定义常数的示例:
?phpdefine(《诗》,《荷马史诗》);回声诗;//输出《荷马史诗》?Php字符串运算符
在PHP中,只有一个字符串运算符。并列运算符(。)用于连接两个字符串值。例如:echo“a=”。$ a. ' br左侧连接字符串“a=”和变量$a的值,第二个位置连接换行符“br”
substr
函数只有在被调用时才会被执行,这和js是一样的。同样,函数定义以函数关键字开始。
?php函数sum($x,$ y){ $ z=$ x $ y;返回$ z;} echo '-2 10='。sum(-2,10);//输出'-2 10=8 '?当没有return语句时,上面会变成“-2 10=”;
过程控制
这里,我们只讨论foreach语句。
foreach语句遍历输出数组:语法:
foreach(array _ expression as $ value){语句};foreach(array _ expression as $ key=$ value){语句};参数array_expression指定要遍历的数组,并且$value是数组的值
?PHP $ actors[0]=' Mary ';$actors [1]='罗瑞';$ actors[2]=' Mike ';foreach($ actors as $ values){ echo ' name : $ values br ';}?上面的代码将被输出:名字:玛丽名字3360劳里名字3360迈克
两个重要的魔术方法
1.__set()方法:此方法用于设置私有成员属性的值。它有两个参数。第一个参数是要设置的属性的名称,第二个参数是要为属性设置的值,没有返回值。2.__get()方法:此方法用于获取私有成员的属性值。它有一个参数,该参数传入要获取的成员属性的名称,并返回获取的属性值。这个方法不需要我们在php中手动调用方法。它不区分大小写。
需要(dirname(__FILE__)。/global . PHP ');//引入全局文件require (dirname (_ _ file _ _)。/config . ini . PHP ');//介绍基本的profile对象运算符和双冒号运算符
在类的成员方法中,可以通过以下方式访问非静态属性-(对象运算符):$this-property(其中property是属性的名称)。静态属性通过:(双冒号)访问:self: $属性。
=和-
=数组成员访问符号,-对象成员访问符号;$this-$name=$value:将当前类的name变量值设置为$ value;$这代表类本身,-是访问其类成员的运算符。双冒号运算符(:)类名:3360静态属性/方法“:3360”用于调用类中的静态属性和方法
Include():包含外部文件,语法格式为Include(字符串文件名)。require():将输出一条错误消息。当终止脚本include_once():多次调用同一个文件时,程序只会调用require_once():一次,首先检查文件是否已经被调用array_pop():获取并返回数组中最后一个元素count():统计数组中元素的个数array_search():获取数组中元素的键名$array_keys():获取数组中重复元素的所有键名
单引号和双引号
PHP将单引号中的数据视为普通字符串,不再处理它们。双引号也需要处理其中的字符串
获取并发布
$_GET[]和$_POST[]全局数组:分别用于接收通过GET和POST方法传递到当前页面的数据。“]”中有名称。
传递php参数常用的方法有三种:$_POST[]、$_GET[]、$_SESSION[],分别用于获取表单、URL和SESSION变量的值。
表单提交中get和post之间的差异可以总结如下:
GET是从服务器获取数据,POST是向服务器传输数据。GET是将参数数据队列添加到提交表单的ACTION属性所指示的URL中,该值与表单中的每个字段一一对应,在URL中可以看到。POST是通过HTTP POST机制将表单中的每个字段及其内容放入HTML HEADER中,发送到ACTION属性指示的URL地址。用户看不到此过程。在获取模式下,服务器使用请求。QueryString获取变量值,在POST模式下,服务器使用Request。获取提交数据的表单。GET传输的数据量较小,不能大于2KB(这主要是由于URL长度的限制)。POST传输的数据量比较大,默认一般是无限制的。但理论上,限制取决于服务器的处理能力。GET不太安全,POST更安全。因为GET是在传输的过程中,数据被放在请求的URL中,但是现在很多现有的服务器、代理服务器或者用户代理都会将请求的URL记录在一个日志文件中,放在某个地方,这样一些隐私信息就有可能被第三方看到。此外,用户还可以在浏览器上直接看到提交的数据,系统的一些内部消息会显示在用户面前。开机自检的所有操作对用户都是不可见的。提交表单时,如果未指定方法,默认为GET请求()。net默认为POST),表单中提交的数据将被附加到url。与网址分开。字母数字字符按原样发送,但空格转换为"",其他符号转换为%XX,其中XX是以十六进制表示的符号的ASCII(或ISO Latin-1)值。GET请求提交的数据放在HTTP请求协议头中,POST提交的数据放在实体数据中;GET提交的最大数据量是2048字节,而POST没有这个限制。POST传递的参数在doc中,也就是http协议传递的文本,接受后再对参数进行解析。获取参数。一般开机自检比较好。POST submit数据是隐式的,GET是通过url传递一些不需要保密的数据,GET是通过URL传递参数,POST不是。
1.1的数据。获取请求将被附加到网址上(也就是说,数据将被放在HTTP协议头中)。拆分网址和传输数据,并相互连接参数
2.2提交的数据。GET最多只能是1024字节。理论上,POST没有限制,可以传输大量数据。最大值在IIS4中为80KB,在IIS5中为100KB
http状态代码
cookie和会话之间的区别
cookie的内容主要包括:名称、值、过期时间、路径和域。路径和域一起构成了cookie的范围。如果未设置到期时间,则意味着此cookie的生存期在浏览器会话期间。当浏览器窗口关闭时,cookie会消失。这个生存期为浏览器会话的cookie称为会话cookie。会话cookie通常存储在内存中,而不是硬盘中,但这种行为不受标准的约束。如果设置了过期时间,浏览器会将cookies保存到硬盘上。关闭并再次打开浏览器后,这些cookies将保持有效,直到超过设置的过期时间。
当程序需要为客户端的请求创建会话时,服务器首先检查客户端的请求是否已经包含会话id(称为会话id)。如果有,则表示之前已经为此客户端创建了会话,服务器根据SessionID检索此会话以供使用(如果无法检索,将创建一个新会话)。如果客户端请求不包含会话id,请为此客户端创建一个会话,并生成与此会话关联的会话id。会话id的值应该是一个既不能重复也不容易被模仿的字符串。此会话id将返回给客户端,以便在此响应中保存。Cookie可以用来保存这个会话id,这样浏览器就可以在交互过程中根据规则自动将这个id发送给服务器。1.cookie数据存储在客户端的浏览器中,会话数据存储在服务器上。2.Cookies不是很安全。其他人可以分析存储在本地的cookie并欺骗cookie。考虑到安全性,应该使用会话。3.会话将在服务器上保存一段时间。当访问增加时,会占用服务器的性能。COOKIE应该用来降低服务器的性能。4.单个cookie保存的数据不能超过4K,许多浏览器限制一个站点最多保存20个cookie。5.个人建议:将登录信息等重要信息保存为SESSION的其他信息。如果你需要保留它,你可以把它放在COOKIE里。
Php代码规范
1.变量赋值必须保持相等的间距和排列
2.每行末尾不允许有多余的空格
3.确保文件名和调用大小写一致,因为类似Unix的系统对大小写敏感。
4.方法名只允许由字母组成,不允许下划线,首字母要小写,然后每个单词的首字母要大写
5.属性的命名只能由字母组成,不允许使用下划线
6.对于对象成员的访问,我们必须始终使用“获取”和“设置”方法
7.当类成员方法被声明为私有时,它必须以双下划线“_ _”开头;声明受保护时;它必须以单个下划线“_”开头。任何时候都不允许声明为公共的成员属性包含下划线。
8.如果我们需要将一些常用的方法定义为全局函数,我们应该在类中以静态的形式定义它们
9.函数名小写加下划线,函数的功能要描述清楚。
10.都是10。布尔值和空值都是小写的。
11.当字符串由纯文本组成时(也就是说,它不包含变量),它必须始终使用单引号(')作为分隔符
12.当使用数组类型声明关联的数组时,应该将它分成多行,以确保每行中键和值的对齐
13.类中的所有代码都必须缩进四个空格
14.不允许用var声明变量,类成员变量必须用private、protected和public声明。Get和set方法通常用于访问类成员。
15.方法必须总是使用私有的、受保护的或公共的来声明它们的范围
16.函数或方法名与参数括号之间不允许有额外的空格