PHP语言基础知识(学习笔记)

来源:互联网 发布:mac os 关闭自动更新 编辑:程序博客网 时间:2024/06/06 00:31

PHP标记风格

XML风格

<?php echo '<p>Order processed.</p>'; ?>推荐使用的风格,默认启用

简短风格

<? echo '<p>Order processed.</p>'; ?>在许多默认设置中已经不支持,需要在配置文件中启用short_open_tag选项

SCRIPT风格

<script language = 'php'> echo '<p>Order processed.</p>';</script>如果HTML编辑器无法支持其他标签风格,可以使用这种最长的风格

ASP风格

<% echo '<p>Order processed.</p>'; %>这种风格与ASP标记风格相同,默认禁用,需要在配置文件下启用asp_tag选项

PHP标识符

1.标识符可以是任意长度的,由字母、数字、下划线组成2.标识符不能以数字开始3.变量名称区分大小写,函数名称不区分大小写4.变量名与函数名可以相同,但是应该尽量避免5.同一作用域下,函数名不能相同,变量名不能相同

PHP语句

1.以分号结尾2.空格被忽略3.单行注释:// 或 #4.块注释:/* */5.连接成字符串:使用.连接或者用双引号包含整个串,举例:    echo $username . '您好'<br />;    echo "$username 您好<br />";  两种形式结果相同,选择看个人喜好,后一种操作叫“插值”

注意,连接字符串时可以使用双引号,而不能使用单引号,单引号内的内容会不经修改就发送给浏览器,双引号内的变量会被替换成相应的值再发送给浏览器


PHP读取表单数据

简短风格:$username

  非常方便,但是安全性很低,不推荐使用(因为可能没有赋初值)。需要将register_globals配置为on

中等风格:$_POST[‘username’]

  推荐,不会产生安全问题,默认设置

冗长风格:$HTTP_POST_VARS[‘username’]

  可能被弃用,可以通过register_long_arrays配置来禁用它,以便改进性能

为了使用方便,我们一般习惯于以下的方式,创建一个该命名空间内适用的短名称:

$username = $_POST['username'];

PHP数据类型

1.Integer(整数)2.Float (浮点数,也叫Double,双精度值)3.String (字符串)4.Boolean (布尔值)5.Array (数组)6.Object (对象)7.NULL (空) 没有被赋值、已经被重置、被赋值为NULL的值8.resource (资源) 特定的内置函数返回resource类型变量,代表外部资源

注意

PHP是一种非常弱类型的语言,每个变量的数据类型可以在任意时间因为赋值类型的不同而改变。强制类型转换:在待转换变量前用(变量类型)来进行转换可变变量(感觉类似于C中的指针?)用一个变量的名称作为另一个变量的值,举例:    $varname = 'number';    后我们就可以用$$varname取代$number,$$varname=5;等价于$number=5;

PHP常量

声明

define('name', value);语句即生成了一个名为name的常量,其值为value

预定义常量

运行phpinfo();函数查看预定义常量列表

注意:常量只能保存Boolean/Integer/Float/String类型的数据


PHP变量作用域

作用域规则

①内置超级全局变量可以在脚本中任何地方使用和可见②常量一旦被声明,将在全局可见;也就是他们可以在函数内外随意使用③在一个脚本中声明的全局变量在整个脚本中是可见的,但不是在函数内部,在函数内部的变量如果与全局变量名称相同,以函数内部的变量为准。④函数内部使用的变量为全局变量时,其名称要与全局变量名称一致,在这样的情况下,我们就可以在函数中使用函数外部的全局变量了,这样就可以避免上一种因为函数内部的变量与外部的全局变量名称相同而覆盖了外部变量这样的情况。⑤在函数内部创建并被声明为静态的变量无法在函数外部可见,但是可以在函数的多次直径过程中保持该值⑥在函数内部创建的变量对函数来说是本地的,当函数终止时,该变量即被销毁

超级全局变量(可在任何地方使用和可见,包括内部和外部函数)

1.$GOBALS  所有全局变量数组2.$_SERVER  服务器环境变量数组3.$_POST  通过POST方法传递给该脚本的变量数组4.$_GET  通过GET方法传递给该脚本的变量数组5.$_COOKIE  cookie变量数组6.$_FILES  与文件上传相关的变量数组7.$ENV 环境变量数组8.$_REQUEST 所有用户输入的变量数组包括$_GET $_POST $_COOKIE 所包含的输入内容9.$_SESSION  会话变量数组

PHP操作符

1.算术操作符:+、-、*、/、%2.字符串操作符:.3.赋值操作符:=、+=、-=、*=、/=、%=、.= (赋值运算式的返回值是整个赋值表达式的运算结果)4.递增(减)操作符:    ①前置递增(减)操作符:先使用再递增(减)    ②后置递增(减)操作符:先递增(减)再使用5.引用操作符:&,相当于一个值有两个名称(或者某个变量有一个别名),不管用哪个名称更改值都可以6.比较操作符:==、===、!=、!===、<>、<、>、<=、>=7.逻辑操作符:!、&&(and与其相同,但优先级低)、||(or与其相同,但优先级低)、xor8.位操作符:&、|、~、^、<<、>>9.数组操作符:+、==、===、!=、<>、!==10.其他操作符:?:(三元操作符)、@(错误抑制操作符)、``(执行操作符,反单引号之间的内容作为服务器端的命令来执行)、instanceof(类型操作符,用来检测左端实体是否是右端类型的一个实例)

PHP判断语句

if-else if-else结构

每个代码块包含在花括号“{”、“}”中

switch结构

switch($变量名){    case "结果1" :        //代码块        break;    case "结果2" :        //代码块        break;    default :        //代码块        break;}

PHP循环语句

while(判断式)

判断式为boolean类型的值,当结果为true时循环不断执行

for

for(表达式1;表达式2;表达式3)    表达式1只在开始时执行一次,一般设置计数器初值    表达式2作为判断条件,在每次执行循环时都会进行判断,为真则继续    表达式3在每次循环结束时执行,通常在这里调整计数器的值

foreach

①foreach(数组名 as $变量名) 这种方法将循环地把数组中的值赋给变量②foreach(数组名 as $key=>$变量名) 这种方法将在每次循环中把值赋给变量的同时把当前单元的键名赋给key

do…while(判断式)

该语句至少执行一次,判断式为真时不断执行

PHP结构控制语句

break:跳出循环体continue:跳出这次循环,直接执行下一次循环exit:结束执行本PHP脚本

PHP 函数

定义函数时以function开头,例如:
function functionName($参数名1=‘默认值’,$参数名2) {  //代码块;}
其中,函数名能够以字母或下划线开头(不能用数字),且对大小写不敏感;声明几个无默认值参数,调用时就需要传入几个参数,函数内,参数名与传入的数值一一对应;有默认值的参数在被调用时,若无传入数值,则该参数为默认值

PHP数组

一、索引数组

声明

$数组名=array(值1,值2,值3);

读取

$数组名[下标索引]

其中下标索引从0开始到n-1

二、关联数组

声明

//第一种方法$数组名=array(键值1=>数值1,键值2=>数值2,键值3=>数值3);//第二种方法$数组名[键值1]="数值1";$数组名[键值2]="数值2";$数组名[键值3]="数值3";

读取

$数组名[键值]

三、多维数组(以二维为例)

声明

$数组名 = array( array(值1,值2,值3),                array(值1,值2,值3),                array(值1,值2,值3));

读取

$数组名[索引1][索引2]

四、数组排序函数

sort() - 以升序对数组排序rsort() - 以降序对数组排序asort() - 根据值,以升序对关联数组进行排序ksort() - 根据键,以升序对关联数组进行排序arsort() - 根据值,以降序对关联数组进行排序krsort() - 根据键,以降序对关联数组进行排序usort() — 使用用户自定义的比较函数进行排序shuffle() - 将数组随机排序(打乱顺序)

五、数组操作符详解

操作符 名称 功能 + 联合 将后面的数组附加到前面的数组中,但是关键字冲突的元素不会被添加 == 等价 如果两数组包含相同元素,返回true === 恒等 如果两数组包含相同顺序和类型的元素,返回true != 不等价 如果两数组不包含相同元素,返回true <> 不等价 与!=相同 !== 不恒等 如果两数组不包含相同顺序类型的元素,返回true

六、其他数组操作函数

array_reverse() - 返回一个与参数数组相同但顺序相反的数组array_walk() - 对数组中的每一个元素进行某种操作,需要传入一个操作函数, 类似于usort()的用法each() - 将数组内指示器向前移动一个单位,若调用each($array_name),会在移动前返回指示器所示元素next() - 将数组内指示器向前移动一个单位,若调用next($array_name),会在移动后返回指示器所示元素reset() - 将数组内指示器重置到第一个元素,并输出end() - 将数组内指示器重置到最后一个元素,并输出current() - 返回数组中指示器所示当前元素的值prev() - 将数组内指示器移动到数组中的上一个元素,并输出pos() - current()函数的别名count() - 统计数组元素个数sizeof() - 与count()函数相同array_count_values() - 统计每个特定的值在数组中出现的次数(基数集),返回一个包含频率表的关联数组extract() - 将数组转换成标量变量
0 0