php学习笔记(二)

一.函数

函数(function)是一段完成特定功能的已命名代码块。函数可以遵照参数完成特定的任务,并且可能返回一个值。

1.自定义函数

函数的定义

function 函数名称(参数1 ,参数2=默认值 ,…){

程序内容叙述(也叫函数体);

return 返回值; //return语句将终止函数的执行

}

:函数的名称应该体现出它的功能,函数名可以是以字母或下划线开头后跟字母、下划线和数字。

函数的调用

函数只有在被调用时才会执行,函数被调用后开始执行函数体中代码,执行的过程是相对独立的,执行完后返回调用的位置继续向下执行。

函数的参数

  1. 函数可以有零个或多个参数
  2. 函数的参数可以为任意数据类型
  3. 函数的参数往往用来改变函数执行结果或执行行为

函数的返回值

  1. return语句并不是必须的
  2. 默认情况下,函数的返回值为NULL
  3. return语句将终止函数的执行

2.变量范围

局部变量

局部变量是在函数内定义的,它的作用域仅限于函数内部。

全局变量

全局变量是在函数外定义的,它的作用域为从变量定义处开始到本程序的末尾。在php函数中无法直接使用全局变量,如果使用必须使用global声明变量。

静态变量

静态变量是指在函数内部定义变量的时候使用static关键字来定义变量。

3.参数传递

在函数的形参中使用“&“修饰的参数
在调用该函数时必须传入一个变量给这个参数,而不能传递一个具体的值。

$i=100;

function test($a)
{

      echo  ++$a;

}

test($i);

echo $i;

4.可变函数

以一个变量的值作为函数名的函数

function test()
   { 

   }
  $a='test';
  $a();

5.递归函数

函数直接或间接调用函数本身,则该函数称为递归函数。
必须具备判断是否执行递归调用的条件。
终止函数的递归调用时,需把目前流程的主控权交回上一层函数执行。
函数递归调用最大的好处在于可以精简程序中繁杂重复调用程序。

function fun($n){

   echo $n.' ';

   if($n>0){          
     fun($n-1);

    }else{

      echo  '<br/>';

    } 

    echo $n.'&nbsp; ' ;    

}

fun(3);

6.内部函数

php有很多提供给我们现成的函数或结构。
比如:

echo()
include()
include_once()
require()

二.数组

1.理解与创建

理解

数组是php中的重要数组类型之一,是复合类型;
数据的集合,在php中数组是一个有序映射.

创建

法一

变量名称[索引值]=数据;
变量名称[]=数据;//不写索引值默认是索引数组,从零开始

法二

变量名称=array(
索引值=>数据,
........
);

2.遍历数组

for循环
用的比较少,因为有缺陷。
通过foreach遍历数组

foreach($数组名称 as $变量名称){循环体;};
foreach($数组名称 as 变量1=>变量2){循环体;};

3.预定义超全局数组

预定义:已经定义好的变量(存放的数据的类型是数组)。

超全局:超级全局变量,作用域(有效区域)。

传递数据(提交数据)给服务器端主要两种方式:

get方式

?参数名=参数值&参数名=参数值……

在服务器端(请求的php文件这边)可以通过$_GET来获取到
post方式
比如表单post发送过来的一般用$_POST来获取

4.处理数组的相关函数

相关函数我们可以通过查手册来使用:
数组的相关函数

三.字符串处理

1.去除空白或其他字符函数

trim()

trim($字符串名称,"char");

char为你要去除的字符,如果省略,就是去除首尾的空白

ltrim()去除字符串左边的字符或空白

rtrim()去除字符串右边的字符或空白

2.大小写转换函数

strtoupper()将字符串转化为大写

strtoupper($字符串名称);

strtolower()将字符串转化为小写

strtolower($字符串名称);

3.字符串查找函数

substr_count()计算字串出现的次数

substr_count($字符串,$needle);
substr_count($字符串,$needle,$offset,$length)

/*
needle(char):要查找的字符或字符串
offset(int):从第第几位开始查找(从0开始数)
length(int):从开始查找的位置开始向后查多少位
该函数返回的是整型
*/

strpos()查找字符串首次出现的位置

strpos($字符串名称,$needle)
strpos($字符串名称,$needle,$offset)

/*
needle(char):要查找的字符或字符串
offset(int):从第第几位开始查找(从0开始数)
该函数返回的值可能是整型,也可能是布尔类型的false(当返回的值为0时)
*/

strstr()查找字符串的首次出现

strstr($字符串名称,$needle)
strstr($字符串名称,$needle,before_needle)

/*
needle(char):要查找的字符或字符串
该函数返回字符串,该字符串为needle(char)及其后面的内容
before_needle:如果为true,则返回needle(char)之前的内容(不包括needle(char))
*/

4.字符串替换函数

str_replace()子字符串替换

str_replace($search,$replace,$str)
str_replace($search,$replace,$str,$count)

/*
search(char):要替换的字符
replace(char):要替换成的字符
count(int):替换的次数
也可以用数组一次替换多个字符
str_replace(array('c1','c2','c3'),array('d1','d2','d3'),$str)
str字符串中的c1,c2,c3会被替换成d1,d2,d3
该函数返回字符串
*/

5.与html标签相关的函数

htmlspecialchars()//将特殊字符转换为html 实体
strip_tags()//从字符串中去除 html和 php 标记

6.字符串截取函数

substr()返回字符串的子串

substr($str,$start)
  substr($str,$start,$length)
  /*
  str:传入的字符串
  start(int):从此处开始截取(从0开始数),若为负数则从尾开始数
  length(int):返回的字符串的长度
  */

7.字符串分隔函数

explode()使用一个字符串分割另一个字符串

explode($delimiter,$字符串名称)
explode($delimiter,$字符串名称,$limit)
/*
delimiter(char):从此字符处分割
limit(int):限制分割的次数,分割limit-1次
*/

str_split()将字符串转换为数组

str_split($字符串名称,$split_length)
/*
split_length:每个转换成的数组中的元素有多少个字符
返回一个数组
*/

字符串处理手册


  Reprint please specify: clam php学习笔记(二)

 Previous
php学习笔记(三) php学习笔记(三)
一.正则表达式1.理解正则表达式语法规则描述了一类字符串的特征,然后通过这个特征可以配合一些特定的函数,来完成对字符串更加复杂的一系列操作。正则表达式:普通字符和特殊字符组成的一个字符串。定界符一般习惯使用正斜线/作为定界的字符,前后一致普
2019-04-21 yxld
Next 
数据结构之哈夫曼树 数据结构之哈夫曼树
一.简介给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。所谓树的带权路径长度,就是树
2019-04-14 yxld
  TOC