want php学习笔记
前言:刚学ctf得小白,前言:刚学ctf得小白,一定要有学习路线 php基础:php学习基础文字教程,学习php先从基础开始,php入门:php学习必看的入门视频教程,学完能够做一些基础性的web开发,php提高:php开发高级教程及经验总结,包含一些知识点的归纳总结,以及开发经验总结。
学习
1.php自定义函数之递归函数
2.php自定义函数之静态变量
3.php 使用系统内置函数
4.php 文件包含函数
5.php 数学常用函数
php自定义函数之递归函数
单纯听名字,完全没有头绪,什么是递归,
递归就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。递归函数必须有结束条件。
当函数在一直递推,直到遇到结束条件后返回。
所以递归要有两个要素,结束条件与递推关系
如自增一般,加入这个函数是加1,然后再调用它自身做到加1,直到加到我们想要的数,结束。
一些新手常有的思维盲区
1.代码是从上到下执行的,所有代码没有exit等停止符,函数必须执行完。
2.如果函数从函数A跳至函数B后,必须把函数B执行完成再执行函数A余下的代码。
3.递归函数必须要能执行完有结束条件,不然函数就会限入死循环。函数会永远的自我执行下去。
1.执行函数A到一半的时候,跑去执行了函数B
2.执行完函数B,先显示出来的是:“我要学习,”,接着显示的才是:“我们需要不断的努力,努力到上天都为我们感动”
3.也就是证明了我们所说思维盲区里面的内容,代码从上到下执行,代码必须执行完。
做个题目
- 应用题~~
小明为了学好英语,需要每天记单词,第一天记1个,第二天记2个依次类推,请用代码完成,算出小明第10天开始的时候会了多少个单词?
分析:
墙(结束条件)是“第一天记1个”
递推关系是“第n天记的单词= 第n-1天记的单词数量+n"
用php代码解出来
php自定义函数之静态变量
如果我想知道函数被调用了多少次怎么办?在没有学习静态变量的时候,我们没有好的办法来解决。
静态变量的特点是:声明一个静态变量,第二次调用函数的时候,静态变量不会再初始化变量,会在原值的基础上读取执行。
有了这个特点,我们就可以实现,最开始我们的提问:
函数调用词数的统计。
先执行10次demo()函数试试,再执行10次test()函数试试:
test();执行一次数值就会加1,而demo输出的显示结果,始终为0。
这里要和自定义的常量做区分
.php中静态变量是指用static声明的变量,这种变量与局部变量的区别是,当静态变量离开了它的作用范围后,它的值不会自动消亡,而是继续存在,当下次再用到它的时候,可以保留最近一次的值.
如果用局部变量的方式来分工这段代码,两次的输出应该都是1.但实际输出却是1和2.
这是因为,变量i在声明的时候被加上了一个修饰符static,这就标志着i变量在add()函数内部就是一个静态变量了,具备记忆自身值的功能,当第一次调用add时,i由于自加变成了1,这个时候,i就记住自己不再是0,而是1了,当我们再次调用add时,i再一次自加,由1变成了2.由此,我们就可以看出静态变量的特性了.
3.php 使用系统内置函数
内置函数的基本用法的全部注意事项:
1.直接返回布尔型,如bool copy ()
2.带有MIXED参数的函数如何调用。Mixed表示任何类型的数据。如Array_unshift()
3.参数中带有&符的参数,一定要传一个变量做为参数。函数里面改变了他的值。
4.带有[]的参数,表示可选项。
5.带有…的参数,表示可以传任意多个参数。
6.带有callback的参数,表示回调函数。需要传一个函数进来。Array_map()
7.函数支持的版本你要了解
我们拿copy这个函数来看:
bool copy ( string $source , string $dest [, resource $context ] )
这个函数的功能为: 拷备一个文件
返回值为为: bool型值,就是成功返回true,失败返回false
参数为: 两个字符串的值,一个是copy的源文件,一个为目标文件。第三个参数可选的,不常用,我们不管它。
2,Mixed表示任何类型的数据。如Array_unshift()
我们来看这个函数:
int array_unshift ( array &$array , mixed $value1 [, mixed $… ] )
功能: 操作一个数组,向数组中之前插入其他类型的参数。
返回值: int 类型,可能就是插入成功最后的个数
参数: 第一个参数为&符,也就是在操作的过程中,改变了第一个参数的值。引用传参。也就是操作这个数组,向这个数组中传入参数。会直接改变这个数组的值。
第二个参数为mixed,因为数组可以存入多个不同的类型.mixed是指混合的意思。因此,mixed是指可传入任意类型
第三个数数加了中括号,我们所有遇到中括号的。都是指后面的参数可传,也可以不传。
第四,最后还看到了三个…(省略号)。代表可以传入任意多个参数。
3, 遇到callback的传函数或者匿名函数进去协助处理,让功能更强大。
bool array_walk ( array &$array , callable $callback [, mixed $userdata = NULL ] )
我们来看看。
功能:
传入一个回调函数,将数组的原来的组操作,并且发生变化。
返回值:
bool 值 也就是意味着,提示成功或者失败
参数:
第一个参数是要操作的数组。
第二个参数是callback 代表着可以传入函数或者匿名函数。
这是适用版本号。
4.php 文件包含函数
非常常用用的一个函数,将文件导入的函数。
常常需要把程序中的公用代码放到一个文件中,使用这些代码的文件只需要包含这个文件即可。这种方法有助于提高代码的重用性,给代码的编写与维护带来很大的便利。在PHP中, 有require、require_once、include、include- once四种方法包含一个文件。
include包含函数的功能。 创建一个functions.php文件,里面写上两个函数:
<?php
//functions.php文件
function demo(){
echo 'aaaa';
}
function test(){
echo 'cccdddd';
}
?>
在functions.php的同级目录下,我再创建一个user.php文件把functions.php文件包含进来。这样我的函数就可以专门放在functions.php里面,哪儿需要用到这些函数的时候,我就从哪儿包含进来:
<?php
//user.php
include 'functions.php';
//可以直接调用
demo();
test();
?>
我通过过上例我们知道了include的功能。接下来我们对比include和require:
代码中,我们先用include 来包含不存在的test.php文件,
<?php
//user.php
include 'functions.php';
include 'test.php';
//可以直接调用
demo();
test();
?>
再用require包含 不存在的test.php文件:
<?php
//user.php
include 'functions.php';
require 'test.php';
//可以直接调用
demo();
test();
?>
通过上例的对比我们发现:
如果test.php文件不存在include 会发出警告继续执行demo()和test()函数。
而requre则直接报错,demo()和test()函数无法继续执行。
我们通过表格知道了:inlcude 和include_once的区别在于,检测是否重复包含。如果重复包含了include_once不会再包含 对应的文件了,而include 则不管这些。有没引入过文件,都再引入一次。
5.php 数学常用函数
在PHP程序中常常需要进行数据处理运算,这就需要使用数学函数。数学函数是最简单、最常用的系统函数。以数学函数为例讲解系统函数的调用方法。
这些不用大家全部掌握,你看一遍知道PHP的数学函数里面为大家准备了这么多就可。以后需要的时候,直接来用。
大家只需要记最常用的一些即可,我将最常用的列表列给大家: