1.c++风格的单行注释(//)
2.c风格的多行注释(/* */)
3.shell风格的注释(#)
1.文件名被修改
2.电脑中含有多个phpstudy文件(全部删除安装一次)
美元符号 是 变 量 的 标 识 符 , 所 有 变 量 都 以 是变量的标识符,所有变量都以 是变量的标识符,所有变量都以符开头,无论是声明变量还是使用变量都应使用$符,变量的数据类型取决于变量的值
这是最简单的类型,只有两个值:真(true)、假(false),其中true和false是PHP的内部关键字
在PHP中不是只有false的值才为假,在一些特殊情况下,如0、0.0、“0”、“ ”、只声明没有赋值的数组等也被认为是false。
数字类型,如1、2、3
字母类型,如a、b、c
特殊字符,如#、$、%、^
不可见字符,如\n、\r、\t
不可见字符是比较特殊的一组字符,它用来控制字符串格式化输出,在浏览器上不可见,只能看到字符串输出的结果。字符串就是连续的字符序列,可以是计算机能表示的一切字符的合集,由数字、字母和符号组成,字符串中的每一个字符占用一个字符节,有3种定义字符串的方式:
单引号:$a=‘字符串’;
双引号:$a=“字符串”;
界定符:
$string=<<<str 要输出的字符串 str;
双引号:如果存在变量的话,输出变量的值
单引号:原样输出(按普通字符串输出)
对转义字符的使用。使用单引号时,只需对 ‘ 进行转义即可,但是用双引号时,还要注意 “ $等字符的使用,这些特殊字符都要通过转义符 \ 来显示
整型只能包含整数,这些整数可以是正数或负数,可以用十进制、八进制、十六进制来表示。如果用八进制、数字前面必须加0.如果用十六进制,则需要加0x
如果八进制种出现了非法数字(8和9),则后面的数字会被忽略掉
浮点型用于存储数字,和整型不同的是它有小数位,它提供的精度比整数大得多,浮点型默认有两种书写格式:
标准格式: 3.1415 -35.8
科学记数法格式: 3.58E1 849.72E-3
一组数据的集合,它把一系列数据组织起来,形成可操作的整体。数组中可以包括很多数据,如标量数据、数组、对象、资源以及php中支持的其他语法结构等。
数组中的每一个数据称为一个元素,元素包括索引(键名)和值两个部分。元素的索引可以由数字或字符串组成,元素的值可以是多种数据类型。定义数组的语法格式如下:
不指定下标:
$array=array("value1","$value2","$value3"); echo $array[下标]; 或 var_dump($array);下标对应值:
$array=array("index1"=>"value1","index2"=>"$value2","index3"=>"$value3");对象是类的实例,使用new命令来创建
资源是一种特殊变量,又叫做句柄,保存到外部资源的一个引用。资源是通过专门的函教来建立和使用的。在使资源时.系统会自动启用垃圾回收机制,解放不再使用的资源,避免内存消耗殆尽。
空值表示没有为该变量设置任何值,另外、空值不区分大小写。被赋予空值的情况有3种:没有赋任何值,被赋值null、被unset()函数处理过的变量。
unset()函数的作用:从内存中删除变量。 没有返回值
is_null()函数的作用:判断变量是否为null,如果变量为null,则返回true,反之,则返回false。
**允许转换的类型:**boolean string integer float array object
**转换成boolean型:**null、0和未赋值的变量或数组会被转换成false,其他的为真;
**转换成整型:**布尔型的false转换成0,true转换成1,浮点型的小数部分被舍去,字符型如果以数字类型开头就截取到非数字位,否则输出0.
类型转换还可以通过settype函数来完成,该函数可以将指定的变量转换成指定的数据类型。
bool settype(mixed var,string type); 例:$str="13"; settype($str,"int"); var_dump($str);使用强制类型转换能直接输出转换后的变量类型,并且原变量不会发生任何变化,而使用settype()函数原变量会被改变。
PHP内置了检测数据类型的系列函数,可以对不同类型的数据进行检测,判断其是否属于某个类型,如果符合则返回true,否则返回false。
方法作用is_srting检查变量是否为字符串类型is_null检查变量是否为nullis_object检查变量是否为对象类型is_bool检查变量是否为布尔类型is_numberic检查变量是否为数字或由数字组成的字符串is_float/double检查变量是否为浮点类型is_integer/int检查变量是否为整数is_array检查变量是否为数组**概述:**常量可以理解为值不变的量。常量被定义后,在脚本的其他任何地方都不能改变。
**组成规则:**一个常量由英文字母、下划线和数字组成,但数字不能作为首字母出现,常量名最好是大写的。
**定义:**define(常量名称,常量值,[是否大小写敏感]) //默认敏感
获取常量值:
(1)使用常量名直接获取值
(2)使用constant()函数 constant(常量名称) 参数也可以为存储常量名的变量
**判断常量是否定义:**defined(常量名称);
如果定义了两个相同的常量,那么前者起作用
PHP中可以使用预定义常量获取PHP中的信息,常用的预定义常量有
常量名作用__FILE__默认常量,PHP程序文件名(大小写不敏感)__LINE__默认常量,PHP程序行数(大小写不敏感)PHP_VERSION内建常量,PHP程序版本,如3.0.8_dev(敏感)PHP_OS内建常量,执行PHP解析器的操作系统名称,如Windows(敏感)(1)常量前面没有$符号 (2)常量通过define函数定义,不能通过赋值语句 (3)常量可以在任何地方使用,但是变量有作用域的问题 (4)常量一旦定义,常量值就不能发生改变或者重新定义,但是变量可以通过赋值的方式重新定义 (5)常量的值只能是标量数据类型,但是变量支持8种数据类型
**概念:**变量是指程序执行过程中数值可以变化的量。变量通过一个名字(变量名)来标识。系统为程序中的每一个变量分配一个存储单元,变量名实质上就是计算机内存单元的命名。因此,借助变量名即可访问内存中的数据。
**赋值:**变量赋值是指给变量一个具体的数据值。
$name=value;
例:$c=123; $a=“str”;
除了直接赋值外,还有两种方式可以为变量声明或赋值:
(1).变量间的赋值 例:$a=123; b = b= b=a; 指赋值后两个变量使用后个自的内存,互不打扰。
(2).引用赋值
引用的概念是用不同的名字访问同一个变量的内容。当改变其中一个变量的值时,另一个也会跟着发生变化,使用&符号来表示引用。
引用赋值和其他赋值的区别:
其他赋值只是将值赋值给其他变量,当某个变量发生改变时,不会影响其他变量。引用赋值是将一个值取两个变量名,当改变其中一个变量的值时,另一个也会跟着发生变化。
isset()函数:检查变量是否定义变量在使用时,要符合变量的定义规则。变量必须在有效范围内使用,如果变量超出有效范围,则变量也就失去其意义了。
在函数内部定义的变量,其作用域是所在函数
被定义在所有函数以外的变量,作用域是整个PHP文件,但是在自定义的函数中是不可以使用的。
在函数内部使用全局变量的方法
(1) global变量名 (2)$GLOBAL(变量名) (3) use(变量名)function fun(use(变量名){} (4)设置成超全局变量
作用域在整个PHP文件,在自定义的函数中也可以使用。
能够在函数调用结束后仍然保留变量值,当再次回到其作用域时,又可以继续使用原来的值。而一般的变量在函数调用结束后,其存储的数据会被清除,所占的内存空间被释放。使用静态变量时,先用关键字static来声明变量。
可变变量是一种独特的变量,它允许动态改变一个变量的名称(变量的变量名可以动态的设置和使用)
原理:该变量的名称由另一个变量的值来确定,实现过程就是在变量的前面再多加一个$
例:$h=“hello”; $hello=“word”; echo $$h; 输出的结果为word
可以获取到用户会话、用户操作系统的环境和本地操作系统的环境等信息
变量作用$_SERVER[‘SERVER_ADDR’]当前运行脚本所在服务器的IP地址$_SERVER[‘SERVER_NAME’]当前运行脚本所在服务器主机的名称$_COOKIE通过HTTPcookie传递到脚本的信息$_SESSION包含所有会话变量有关的信息$_POST包含通过POST方法传递的参数的相关信息$_GET包含通过GET方法传递的参数的相关信息$GLOBALS由自己定义全局变量组成的数组(1).在算术运算符中使用%求余,如果被除数($a)是负数,那么取得的结果也是一个负值
(2).递增、递减运算符,主要对单独一个变量来操作的,递增、递减有两种使用方法:
++、–在前,即先加减再执行其他语句,++、–在后,即先执行其他语句再加减。
字符串运算符只有一个,即英文句号“.”,它将两个字符串连接起来,结合成一个新的字符串。
逻辑运算符用来组合逻辑运算的结果,是程序设计中一组非常重要的运算符。
运算符举例结果为真&&或and(逻辑与)KaTeX parse error: Expected 'EOF', got '&' at position 2: m&̲&n m 和 m和 m和n都为真时||或or(逻辑或) m ∥ ∥ m\|\| m∥∥n m 或 m或 m或n有一个为真,或者两个都为真xor(逻辑异或)$m xor $n$m$n一真一假时!(逻辑非)!$m$m为假时在逻辑运算符中,逻辑与和逻辑或这两个运算符有4种运算符号,其中属于同一种逻辑结构的两个运算符号(例&&和and)之间却有着不同的优先级
比较运算符就是对变量或表达式的结果进行大小、真假等比较,如果比较结果为真,则返回true,反之,则返回false
运算符作用<小于>大于<=小于等于>=大于等于==相等!=不等===恒等!==非恒等a = = = a=== a===b: a 和 a和 a和b不只是数值上相等,而且两者的类型也得一样。
a = = a== a==b: a 和 a和 a和b的数值相等即可,类型不用一样
a ! = = a!== a!==b: a 和 a和 a和b的或许数值不相等,或许类型不相等
@错误屏蔽运算符可以对程序中出现的错误的表达式进行操作,进而对错误信息进行屏蔽,其使用的方法就是在错误的表达式前加上@即可,虽然错误依旧存在,但是在输出时并不会显示报错。
三元运算符(?:),也称为三目运算符,用于根据一个表达式在另两个表达式中选择一个,而不是用来在两个语句或者程序中选择
例:
echo $a=true ? "true" : "false";所谓运算符的优先级是指在应用中哪个运算符先计算哪个,后计算哪个。
PHP的运算符在运算中遵循的规则是:优先级高的运算先执行,优先级低的操作后执行,同一优先级的操作按照从左到右的顺序进行。也可以像四则运算那样使用小括号,括号内的运算最先执行。
将一些重复使用到的功能写在一个独立的代码块中,在需要时单独调用
当函数定义好后,只需要引用函数名并赋予正确的参数即可完成函数的调用,在函数调用时,需要向函数传递参数,被传入的参数称为实参,而函数定义时的参数为形参。参数传递的方式有按值传递,按引用传递和默认参数3种。
(1).将实参的值复制到对应的形参中,在函数内部的操作针对形参进行,操作的结果不会影响到实参。即函数返回后,实参的值不会改变。
(2).按引用传递就是将实参的内存地址传递到形参中。这时函数内部的所有操作都会影响到实参的值,返回后,实参的值会发生变化。引用传递方式就是传值时在原基础上加上&即可。
(3).默认参数(可选参数)可以指定某个参数为可选参数,将可选参数放在参数列表末尾,并且指定默认为空。
return()将函数的值返回给函数的调用者,即将程序控制权返回到调用者的作用域。如果在全局作用域内使用return()关键字,那么将终止脚本的执行。
return语句只能返回一个参数,即只能返回一个值,不能一次返回多个。如果要返回多个结果,就要在函数中定义一个数组,将返回值存储在数组中返回。
函数的调用是通过改变变量名来实现的,通过变量名后面加上一对小括号,PHP将自动寻找与变量名相同的函数,并且执行它。如果找不到对应的函数,系统将会报错。这个技术可以用于实现回调函数和函数表等。
引用不仅可用于普通变量、函数参数,也可以作为函数本身。对函数的引用,就是对函数返回结果的引用。
当不再需要引用时,可以取消引用。取消引用使用unset()函数,它只是断开了变量名和变量内容之间的绑定,而不是销毁变量内容。
1.提高程序的维护性
2.提高软件的可靠性
3.提高程序的可重用性
4.提高程序的开发效率
它按照条件选择执行不同的代码片段,如果表达式expr的值为真,那么就顺序执行statement语句;否则就会跳过该条语句,再往下执行。
在满足某个条件时执行一条语句,在不满足时执行其他语句,这时候就可以使用else语句
if(expr){ satatement1; satatement2; …… }else{ satatement1; satatement2; …… }if…else语句只能选择两种结果,要么执行真,要么执行假,但是有时会出现两种以上的选择,这时可以使用else if语句来执行
if(expr){ satatement1; satatement2; …… }else if{ satatement1; satatement2; …… } …… else{ satatement1; satatement2; …… }例:
$b=71; if($b>=90){ echo "优秀"; }else if($b>=60 && $b<90){ echo "良好"; }else{ echo "不及格"; }虽然elseif语句可以进行多重选择,但使用十分繁琐。为了避免if语句过于冗长,提高程序的可读性,可以使用switch分支控制语句。
switch语句根据variable的值,依次与case的value值比较,如果不相等,继续查找下一个case;如果相等,就执行对应的语句,直到switch语句结束或遇到break为止。switch语句最终可以设置一个默认值default,如果前面的case中没有找到相符的条件,则输出默认语句。
例:
$b=65 switch((integer)($b/10)){ case 10: echo "A"; break; case 9: echo "A"; break; case 8: echo "B"; break; case 7: echo "C"; break; case 6: echo "D"; break; default: echo "不及格"; break; }while循环语句是PHP中最简单的语句,当表达式expr的值为真时,执行satatement语句,执行结束后,再返回expr表达式继续进行判断。直到表达式的值为假,才跳出循环,执行下面的语句。
例:
$j=1; while($j<=5){ echo $j." "; $j++; }do…while和while的区别在于,do…while要比while语句多循环一次。当while表达式的值为假时,while循环直接跳出当前循环;而do…while语句则是先执行一遍程序块,然后对表达式进行判断。
例:
$j=1; do{ echo $j." "; $j++; }while($j<=5)for循环是PHP中最复杂的循环结构,expr1在第一次循环时无条件取一次值;expr2在每次循环开始前求值,如果值为真,则执行satatement,否则跳出循环,继续往下执行;expr3在每次循环后被执行。
例:
$str="10以内的奇数:"; $str2="10以内的偶数:"; for($i=1;$i<=10;$i++){ if($i%2==0){ $str2.=$i." "; }else{ $str.=$i." "; } } echo $str."<br>".$str2;foreach循环是PHP4引进来的,只能用于数组。在PHP5中又增加了对对象的支持。
foreach($arr as $key=>$value){ satatement; }PHP提供了另一种书写格式,包括if、while、for、foreach和switch都可以使用
使用:来代替左边的{,使用endif;、endwhile;、endfor;、endforeach;和endswitch;来代替右边的}
在使用循环语句时,有时不确定循环次数,遇到这样的情况可以使用无限循环,只有当程序块满足一定条件后才跳出循环,跳出循环使用的关键字是break和continue
1.break:break关键字可以终止当前的循环,包括while、do…while、for、foreach和switch在内的所有控制语句,break语句不仅能跳出当前的循环,还可以指定跳出的几重循环。例:break $num;
2.continue:continue能终止本次循环,进入下一次循环中。