PHP基础知识点小结

1 ) PHP 简介

 什么是 PHP?PHP 是 "PHP Hypertext Preprocessor" 的首字母缩略词 是一种服务器端的脚本语句

2)基础 PHP 语法

PHP 脚本以 <?php 开头,以 ?> 结尾

3)变量的命名规则

$符号开头,字母,数字,下划线组成(不能以数字开头);多个单词下可以下划线隔开或者采用驼峰法;命名要符合见名知意规则。

4)常量的命名规则(一旦被定义,就不能被修改,只能被使用的“量”叫做常量。)

 语法:define("常量名", "常量值",[可选]}); 常量命名规则和变量基本一致,但区分大小写,不能用$符号,一般情况下采用大写。

备注:指的是当PHP引擎将用户请求的某个PHP脚本文件(index.php)的最后一行PHP代码执行完毕,称之为脚本执行结束。

        PHP脚本所占用的所有内存都会被释放,被操作系统回收。

5)PHP数据类型

PHP有三大数据类型:标量,复合,特殊(字符串、整数、浮点数、逻辑、数组、对象、NULL、资源)

6)运算符(算数,赋值,比较,逻辑,错误抑制符@,三元运算符:表达式1 ? 表达式2 : 表达式3,自操作运算符:++ --,字符串运算符:. .=,位运算符)

7)流程控制(顺序结构,分支结构,循环结构)

****************************************************************************************************************

函数

1)PHP函数(将一堆语句(语句块)封装到一起,在需要使用的时候,可以直接调用。),分为系统函数(直接调用),自定义函数

变量作用域: 

js中作用域: 全局作用域:任何地方(函数外和函数内)都可以被使用

                 局部作用域:只能在函数内部被使用

PHP作用域: 全局作用域:只能在函数外部使用

                 局部作用域:只能在函数内部使用

若想在函数内使用外部全局变量,可以$GLOBAL['变量名'],或者在变量前加global关键字。

匿名函数,伪类型,可变函数。

 

2)数据类型转换(自动转换,强制转换)语法: (数据类型)变量

 integer: Boolean: float: string: array:object:

获取变量数据类型的函数 gettype() 设置数据类型:settype($var,’类型’)

   数据类型判断 is_bool(变量) 返回值 ture or false

  is_bool   is_float  is_integer  is_object  is_array  is_string  is_resource is_null

  is_scalar:判断一个变量的值是否是标量类型  is_numeric:检测变量是否为数字或数字字符串

函数

3 ) 文件包含函数(include require include_once require_once)

  include和require:使用一次包含一次文件

  include_once和require_once:不管在一个脚本中包含另外一个脚本多次,都只加载一次

  文件包含的路径(绝对,相对)

  include和require的区别:
 1.相同点:都能够包含文件

 2.不同点:include会尝试着去包含,如果包含不到,会提示警告错误,但是不会影响当前自身脚本的执行;

 require一定会去包含文件,而且包含的文件必须不能出错,否则会终止当前自身脚本的执行
 include包含不存在的文件

  相对路径的表示方式: ./:表示当前目录     ../:上级目录     /:网站根目录

  嵌套包含的情况下尽量使用绝对路径避免出现路径错误

 备注: PHP提供了三种方式来终止脚本执行:return(例如返回配置文件 数据库连接信息),die,exit

4)系统函数   

    字符串函数

    strlen:获取字符串的长度,获取的是字符串的字节长度

    substr:截取字符串,以字节为单位截取

    substr (目标字符串 , 截取起始位置 [, 截取长度] ),如果没有截取长度,则默认截取到最后。字符串的起始位置从0开始,第一个字符是0。

    strtolower:将字符串变成小写 strtoupper:将字符串变成大写 ucfirst:将字符串首字母大写

    strrev:将字符串反过来

    strpos:获取字符串中某个字符首次出现的位置

    strrpos:获取字符串中某个字符最后一次出现的位置

   一般strpos和strrpos是与substr函数搭配使用 (获取文件后缀名)

   strchr:是strstr函数别名,查找某个字符在字符串中首次出现的位置,并返回该位置到字符串最后的整个字符串

   strrchr(获取文件后缀名)

   trim:去除一个字符串两遍的(最外边)的空格(或者其他字符)

****************************************************************************************************************

 //获取后缀名

<?php

  $email='3158544903@qq.com';

  //$end= strrchr($email,'.');

  $end=substr($email,strrpos($email,'.'));

  echo $end;    // 返回结果  .com

****************************************************************************************************************

  时间函数

  time:得到当前时间的时间戳,是一个整型数据

  date:将指定的时间戳,按照指定的字符串格式进行输出。输出的格式化有固定的参数

  string date ( string $format [, int $timestamp ] ),$format是一个包含可以识别参数的字符串

  第二个参数是一个整型的时间戳,如果没有提供则默认是当前时间的时间戳。

  strtotime:将一个字符串格式时间(美国可以识别的英文字符串)转化成时间戳

  microtime:微秒,返回一个微秒的字符串,或者返回一个浮点数毫秒

****************************************************************************************************************

<?php
header('content-type:text/html;charset=utf-8');
//求两个时间日期差数  2016-10-5 ~ 2016-12-6

 $a='2016-10-5';
 $b='2016-12-6';
 
 $a_time = strtotime($a);
 $b_time = strtotime($b);
 
 $xiangcha = ceil(($b_time - $a_time)/86400);
 
 echo $a.'与'.$b.'相差'.$xiangcha.'天';  //返回结果 2016-10-5与2016-12-6相差62天

****************************************************************************************************************

 数学相关函数

 abs:获取数值的绝对值

 floor:向下取整

 ceil:向上取整

 round:四舍五入

 rand:随机取得指定范围或者0到整型最大值之间的数

 mt_rand:随机取得指定范围或者0到整型最大值之间的数,比rand效率高

   

 
数组  

数组就是在内存里有一块连续的内存空间(堆空间),这里面可以保存多个数据,数据没有数据类型的限制。

PHP数组与其他语言的数组区别?

a)PHP数组没有长度限制,其他语言C必须事先指定数组长度,如果超出长度,就称之为溢出。

b)PHP数组没有数据类型限制,其他语言C在事先必须声明数组能存储的数据类型。

c)数组的下标可以是数值也可以是字符串。

 数组基本语法   

显示数组语法 $arr = array(元素1,元素2,元素3…);   

隐式数组语法 $arr[] = 元素1;    //定义一个$arr变量,

将元素1添加进来 $arr[] = 元素2;    //将元素2添加到$arr变量中

数值的访问

语法:$数组变量[下标]     数值下标:$arr[数值]     字符串下标:$arr[‘字符串’]

数组分类

根据数组的下标的不同进行分类

索引数组:当前数组的下标(键名)全是数字(整型)

关联数组:当前数组的下标全是字符串(使用最多)

混合数组:数组的下标既有数字又有字符串

数组遍历 将数组里面的所有元素都取出来。 count():对数组长度进行计算,返回数组元素的个数(长度)  for循环遍历数组

 要求: 1.数组必须是索引数组 2.所以必须是连续的索引 3.索引必须从0开始

如果数组是一个关联数组,那么就完全不能使用for循环来进行遍历。PHP提供了一个foreach来实现对数组元素的遍历

语法:foreach(数组 as 键值对$key => $value){           

 //使用$key当做当前元素的下标             

//使用$value当做当前元素的值 }

函数遍历数组

each():每次从数组中获取当前数组指针所指向的元素,返回一个有四个元素的数组(关联+索引),并且将数组的指针下移一位

each在得不到数据(数组指针指向数组最末,没有元素)的时候返回FALSE

二维数组

数组的元素的值是一个数组数据类型。

array( ‘person1’ => array(‘name’ => ‘张无忌’,’age’ => 20,’power’ => ‘九阳神功’),   

         ‘person2’ => array(‘name’ => ‘周芷若’,’age’ => 18,’power’ => ‘九阴白骨爪’) );

二维数组的访问  遍历二维数值

数组的增删改查(二维数组)

$arr = array();    //新增

$arr[] = ‘泰山’;    //新增元素

$arr[0] = ‘衡山’;  //修改元素

echo $arr[0];      //查看元素

unset($arr[0]);   //删除元素

数据结构模拟函数

栈:先进后出,压栈(把数据加入到栈里),出栈(把栈里的数据弹出来)

队列:先进先出,入队(从数组尾端插入数据),出队(把数组的元素,从头部出来)

以下四个函数 1.都是对原数组进行操作。

2.都会重置数组里面的索引。

array_push:从数组的尾端加入一个元素(压栈)

array_pop:从数组的尾端弹出一个元素(出栈)

array_shift:从数组头部将数组元素移出

array_unshift:从数组的头部插入数据

 

数组与字符串之间的转换

explode:将字符串按照指定的分隔符分解成一系列小的字符串,都成为数组的一个元素

implode:将一个数组里的所有的元素按照某个分隔符进行拼接,变成一个字符串

 

数组合并:+和array_merge()     

+:保存第一个数组的所有元素,如果后面的数组的元素与前面数组的元素的下标相同,那么就忽略,如果不同则加到第一个数组里,最终返回一个数组     

array_merge():先保留第一个数组的所有元素,如果后面数组的元素与前面数组的元素关联下标相同则用后面数组的元素覆盖前面的;如果是索引下标,直接添加到第一个数组后面,重置索引。

随机读取字符串的字符形式生成随机验证码

 

posted @ 2017-05-29 23:29  坚持奔跑在路上  阅读(86)  评论(0)    收藏  举报