PHP基础知识复习加巩固

PHP是什么

  1. PHP全称:Hypertext preprocessor 超文本预处理器,是一种开源的脚本语言
  2. PHP在服务器上运行,以纯html的形式返回给浏览器

PHP能做什么

  • 可以生成动态的页面
  • 可以创建、打开、读取、写入、关闭服务器上的文件。
  • 可以发送、接受cookie信息
  • 可以向服务器发送表单数据
  • 可以添加、修改、删除数据库中数据
  • 可以限制用户访问网站,或者网站上的某些页面
  • 可以加密数据

PHP变量

PHP是一门弱类型的语言,因此会根据变量的值,自动变换为正确的数据类型,在强类型的编程语言中,我们必须在使用变量前先声明定义变量的类型和名称。PHP没有声明变量的命令,故不需要声明变量,变量以$符号开始,后边跟着变量的名称。

变量作用域

php有四种不同的变量作用域

  • local (局部作用域–>局部变量)
  • global (全局作用域–>全局变量)
  • static (静态作用域–>静态量)
  • parameter (参数作用域–>参数)

局部作用域 、全局作用域
函数外定义的变量,要想在函数内部使用,需要使用$ GLOBALS[‘变量名称’] ,或者使用global关键字,在函数内部声明该变量为global $ x; 且在此处不能给$ x 赋值;

$x=5;
$y=10;

function myTest()
{
    global $x,$y;
    $y=$x+$y;
}

myTest();
echo $y; // 输出 15

static 作用域
当一个函数完成时,它的所有变量通常都会被删除。当你希望这个局部变量不要发生变化时,可以使用static,因此常用于计数器。

function myTest()
{
    static $x=0;
    echo $x;
    $x++;
}

myTest();
myTest();
myTest();

参数作用域
调用函数时传递给函数的变量值。

PHP数据类型

String (字符型)、Integar(整型)、float(浮点型)、Boolean(布尔型)、Array(数组),Object(对象)、NULL(空值)
注意点:

  • PHP中对象必须声明,利用class关键字声明,类中包含属性和方法。
  • NULL 值表示变量没有值,NULL是数据类型为NULL的值
  • 常量是一个简单的表示符,在脚本中不可改变,设置常量 用define()函数,常量名不用$ 修改符。

PHP运算符

逻辑运算符:! && || and or xor
数组运算符:合并:+、比较:==, != , ! ==, ===
注释,

  • 关联数组合并时:
    + 号,会自动去重,保留第一个重复的值;
    array_merge($ arr1,$ arr2),自动去重,保留第二个重复的值
  • 索引数组合并:
    + 号,同上,所以只保留第一个数组
    array_merge(),相当于数组拼接在一起

全局变量

  • $ GLOBA:是一个包含了全部变量的全局组合数组,变量名字即为键名
  • $ _SERVER:是一个包含了诸如头信息,路径,以及脚本位置的数组,包含:header、PATH、HTTP_HOST、HTTP_USER_AGENT
  • $ _REQUEST:用于搜集表单提交的数据
  • $ _ENV:是一个包含服务器端环境变量的数组
  • $ _POST、$ _GET、$ _FILES、$ _SESSION、$ _ENV

魔术变量

  • __ LINE __:文件中的当前行号
  • __ FILE__:文件的完整路径和文件名
  • __ DIR__ :文件所在的目录
  • __ FUNCTION__ :函数的名称
  • __ TRAIT__ :定义/声明复用类
  • __ METHOD__ :类方法/函数的名称
  • __ NAMESPACE__ :命名空间的名称

PHP引入命名空间作用

  • 可解决用户代码与PHP内部类、函数、变量之间的冲突
  • 创建别名的名称,提高源代码可读性

PHP数组排序的函数小结

  1. sort():普通索引数组 升 序排列
  2. rsort():降序排列
  3. asort():关联数组的 值 :升序
  4. ksort():关联数组的键 :升序
  5. arsort():关联数组 的值 :降序
  6. krsort():关联数组的键 :降序

PHP文件处理

$ file = fopen(fname,mode);//文件名,打开模式

  1. r :只读
  2. r+:读写
  3. w:只写;文件不存在,创建文件; 会替换掉文件中原来的内容
  4. w+:读写;文件不存在,创建文件; 会替换掉文件中原来的内容
  5. a:追加;文件不存在,创建文件
  6. a+:读、追加;文件不存在,创建文件
  7. x:只写;文件不存在,创建文件,文件存在,返回false或报错
  8. x+:读写;文件不存在,创建文件,文件存在,返回false或报错
    注意点:x 方式会将文件的指针指向文件头
常用打开文件处理函数:
  • fopen(fname,mode):打开文件
  • fread(fname,length):读取文件
  • fgets(fname):读取单行文件,调用后文件指针会自动移至下一行
  • fgetc(fname):读取单字符,调用后文件指针自动移至下一个字符
  • feof(fname):检测是否已到文件结尾,对遍历未知长度的数据有用
  • fclose(fname):关闭文件

Filesystem函数

  • chgrp():改变文件组
  • chmod():改变文件权限
  • chown():改变文件所有者
  • copy():复制文件
  • clearstatcache():清除文件状态缓存
  • dirname():返回路径中的目录
  • basename():返回路径中文件名
  • fgetss():从打开的文件中返回一行;并过滤掉html和php标签
  • file():将一个文件读入数组中
  • file_exists():检查文件或者目录是否存在
  • file_get_contents():把文件读入字符串中
  • file_put_contens():把字符串写入文件
  • fileperms():返回文件的权限
  • filetype():返回文件的类型
  • filesize():返回文件的大小
  • fseek():在打开的文件中定位
  • fstat():返回一个关于一个打开文件的信息
  • fwrite():写入打开的文件
  • glob(“*.txt”):返回一个包含匹配模式指定模式的文件名、目录的数组
  • is_dir():判断是否是目录
  • is_file():判断是否是文件
  • is_executable():判断是否是可执行文件
  • is_readable():判断是否可读
  • is_writeable():判断是否可写
  • is_uploaded_file():判断是否通过http post上传
  • is_link():判断文件是否链接
  • mkdir():创建目录
  • move_uploaded_file():移动文件到指定地方
  • pathinfo():返回文件路径的信息
  • popen():打开一个进程
  • readfile():读取一个文件,并写入到输出缓冲中
  • realpath():返回文件的绝对路径名
  • rename():重命名文件、目录
  • rmdir():删除空的目录
  • stat():返回关于文件的信息
  • tempfile():创建唯一的临时文件
  • touch():设置文件的访问和修改时间
  • unlink():删除文件

Str 函数

  • addslashes():返回在预定义的字符前添加反斜杠的字符串
  • rtrim():删除字符串右侧的空白字符或其他字符
  • explode(‘’,$ str):字符串打散成数组
  • implode(‘ ’,array):数组分隔成字符串,join是别名
  • htmlspecialchars():把预定义的字符转为html实体
  • lcfirst():字符串首字母大写,注意并不改变原字符串内容
  • ucfirst():字符串首字母小写
  • lrim(str,length):删除字符串左侧的空白字符或其他字符
  • parse_str():把查询的字符串解析到变量中
  • str_replace(s1,s2,allstr):在allstr中的s1替换成s2
  • str_split(str,length):把字符串分隔到数组总,length默认0
  • strstr(allstr ,‘str’):查找字符串在另一个字符出现,返回余下部分字符(含本身)
  • strcmp():比较两个字符串,返回布尔值
  • strip_tags():过滤字符串中html和php标签
  • strlen():返回字符串的长度
  • strops():查找字符串在另一个字符出现的位置,返回数字
  • strrev():字符串翻转
  • substr($ str ,6,10):返回字符串的一部分

Array函数

  • array_column():返回数组中某一单列的值,二维数组好用
  • array_combine():合并数组为一个新的数组,一个为键名,一个为键值
  • array_diff():比较数组,返回差集(只比较键值)
  • array_diff_key():比较数组,返回差集(只比较键名)
  • array_diff_assoc():比较数组,返回差集(比较键值和键名)
  • array_intersect():比较数组,返回交集
  • array_flip():交换数组中的键 和 值
  • array_key_exists(‘key’,array):检查指定键名是否存在数组中
  • array_map(function(),array):数组中每个元素都发送函数,返回新值
  • array_merge():合并数组,区别array_merge_recursive(),键名相同不会覆盖,会把键名相同的元素从新组成一个数组;如果仅有一个索引数组,返回键名会从0开始的新索引数组
  • array_pop():删除数组中的最后一个元素
  • array_push(array,v1,v2):在数组结尾处插入一个或者多个元素
  • array_search(val,array):搜索指定的值,返回键名
  • array_shift():删除数组中的首个元素,并返回删除元素
  • array_splice():删除、替换数组中指定的元素
  • array_unique():数组去重
  • array_values():返回数组中的值
  • in_array(val,array):检测数组中是否有某值
  • list(val1,val2):数组中值赋给一组变量
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章