首页
关于
友链
留言
Search
1
安装Docker Desktop报错WSL 2 installation is incomplete
76 阅读
2
震惊!杭州应届生工作免费领2w元
31 阅读
3
我的世界紫禁之巅纯净生存服务器
25 阅读
4
python3网络爬虫开发实战pdf
23 阅读
5
火车头采集问题:Void Proc(System.Net.HttpWebRequest)
20 阅读
技术分享
日常学习
我的世界
Search
标签搜索
python
博客
javascript
web
ce
织梦
html
按键精灵
php
游戏
css
typescript
jquery
日常
数据库
vue
ubuntu
Datehoer
累计撰写
180
篇文章
累计收到
10
条评论
首页
栏目
技术分享
日常学习
我的世界
页面
关于
友链
留言
搜索到
9
篇与
php
的结果
2020-12-27
php 考试编程题详解
明天就要开始本学期的php期末考试了,感觉其实学的并没有多少,难度不是很大,唯一的难点其实就是笔试。。。用笔来写代码,确实很难。由于平常的作业大多数都是选择,填空,判断。而编程题其实并不多,所以准备在这里总结一下平常遇到的一些php编程题,一边复习一遍编辑。php编程题--九九乘法表首先最早的一道编程题其实大家都应该见过,不止是php,其余的语言也都见过,那就是打印九九乘法表。我们如果使用php或者JavaScript的话,还是要依赖于html的标签的。比如说table,比如说td,tr。我们首先要有一个html的概念,那就是table里套着tr,tr里套着td。首先先来简单的编写一下表格吧。呃呃,本来其实想由浅入深的,但是这个属实没有难度,就不浪费大家时间了,php代码直接奉上。<?php $i = 9; echo "<table border='1'>"; for ($b = 1;$b <= $i;$b++){ echo '<tr>'; for($c = 1;$c <=$b;$c++){ echo "<td>"."$b*$c=".$b*$c."</td>"; } echo "</tr>"; } echo "</table>"; ?>其实也就是一个简单的for循环的嵌套,再加上标签就行了。php编程题--输出1-100的素数首先解释一下素数,素数其实就是除了1和自己以外,没有其他因数的自然数。也就是 本身/除本身或1以外其余的都非整数。这个其实难度也就是怎么只输出一个结果。目前来说有两个方法。分别介绍一下php求1-100内的素数的两种方法吧。<?php for ($b = 2;$b<=100;$b++){ for($c = 2;$c<$b;$c++){ if ($b%$c==0){ break; } } if($b==$c){ echo $b; } } ?>这是第一种,因为我们在if里进行判断,然后如果取余为0的话代表了整除,这样子我们直接break出去,然后我们的$c就会停在那个可以被整除的数上,然后再判断两个值是否相等就行了。因为如果是素数的话,第二个for循环应该是一直进行的,然后$c就会等于$b。其实第二种思路跟第一种类似吧,就是取一个记录值,我们再开头取一个值,让他等于true,之后如果有因数的话,那么将这个值更改为false,然后后面跟上类似于前面的if判断就行了。不过其实还是有一个问题的,就是我们在前面更改为false后,一定要在if后将它改为true,否则的话,那个标准值就一直是false了。<?php $bz = true; for ($b = 2;$b<=100;$b++){ for($c = 2;$c<$b;$c++){ if ($b%$c==0){ $bz = false; break; } } if($bz){ echo $b; } $bz = true; } ?>php编程题--求黑红白球各多少个很简单的一道题。for+if的运用,直接上PHP代码吧<?php for($hong = 1;$hong<=25;$hong++){ for($hei = 1;$hei<=31;$hei++){ if($hong + $hei ==28){ $bai = 25-$hong; if($bai + $hei == 31){ echo "hei".$hei,"bai",$bai,"hong",$hong; } } } } ?>很简单吧,其实。。。php编程题--猴子摘桃 <?php function tao($day){ if($day==10) { return 1; } return 2*(tao($day+1)+1); } echo tao(0); ?>这个是通过递归来解决的,不过不知道是不是vscode的问题,一直显示有错误,但是可以正常运行。为什么要return 1 是因为最后猴子只剩下1个桃了,然后我们算一下第九天的 1+1然后再乘2以此类推,就是一个递归了。php编程题--输入整数输出4次方这个书上的写的是16的四次方,但实际上应该是它的4次方吧。。。很简单,没难度。<?php function cifang($c){ return pow($c,4); } echo cifang(2); ?>php编程题简单介绍到这里吧,如果有什么疑问可以在评论区留言,我会在看到的第一时间进行回复的。当然如果有错误也欢迎指出。
2020年12月27日
2 阅读
0 评论
0 点赞
2020-12-26
浅谈php 取余
相信各位其实对php取余应该没有什么问题了,不过其实对于初学者来说,取余这个运算符还是有难度的。在我当时刚学编程的时候,一直想不明白取余到底是什么,为什么9%3结果为0,而9%2结果却是1呢。其实之所以一开始想不明白就是懒。。。。多看几个式子就明白了。不过今天之所以发一篇关于php取余的文章,是因为有个同学问我,(-9)%3和9%(-3)相等吗,一眼就能看出来相等,不过其实也有人会有疑惑,为什么?前面是9是负的,后面是3是负的,按理说结果应该不一样啊,但是实际上这个题的点就在这里了,就是让你关注正负而不去关注结果,我们想一下0有负数吗?有人写0写成-0么?不过其实我当时并没有这么说,我说的是这种题最好做了,只需要把不会的代码放进编译器里,然后运行一下查看结果即可。。。。后面想了一下,这样有点过分了,所以准备详细说一下,其实也详细不到哪去。其实取余,就是算前面的数除后面的数,剩下的余数。比如说9%2就是1,而9%3是0,这都是根据9/3,9/2来算的。然后我们来看一下正负,这个就跟9/3,9/2不太一样了,虽然结果是一样的,但是关于正负是不一样的。正数%(不管正负)=正负数%(不管正负)=负这个正负主要是看被取余数的正负,跟后面的没啥关系。可以简单的看一下代码:<?php echo '(-9)'.'%2='.(-9)%2; echo "<br>"; echo '9'.'%2='.(9)%2; echo "<br>"; echo '9'.'%(-2)='.(9)%(-2); echo "<br>"; echo '(-9)'.'%(-2)='.(-9)%(-2);输出 结果 肯定跟我们前面的一样啦,要不我在写文章的时候就会改了,嘿嘿。其实初学者应该会有疑惑,但是如果已经学了好久的人应该是没有什么问题的,不过有问题看了上面的内容也应该没有问题了。
2020年12月26日
3 阅读
0 评论
0 点赞
2020-12-18
浅谈php count()函数方法
简单聊一下php中count()函数方法吧,其实本来准备发一篇关于python的文章,但是现在思路有了,但是学的不是很全面,不会爬取。。。很尴尬,因为那个页面是通过JavaScript渲染的,所以爬取有点难度,不过其实该怎么爬取应该是明白了,接下来就是通过百度进行学习了,所以今天更新一篇关于php函数的文章吧。其实这个count()函数方法,大家觉得很简单,毫无难度啊,我也是这么认为的。但是今天做题的时候发现,还是有一些如果不看就不会的内容。比如说 count()函数方法的第二个参数 。最常见的用法其实是这样的<?php $cars=array("Volvo","BMW","Toyota"); echo count($cars); ?>很简单很容易就可以获取数组里面的个数,但是假如说我给它加上第二个参数呢?count($cars,1)这样应该怎么看呢?其实这个关系到数组的参数,我们叫数组里面有参数为数组的数组为多维数组,比如说 $shuzu = array(array(1),2) 这就是一个二维数组了,然后我们如果只是使用 count($shuzu) 的话,得到的结果为2,而我们使用 count($shuzu,1) 的话,得到的结果为3,这是为什么呢?其实count()函数方法的第二个参数只能是两个值,不是0就是1,而0是默认值。 0 - 默认。不对多维数组中的所有元素进行计数 1 - 递归地计数数组中元素的数目(计算多维数组中的所有元素) 我们默认的话,那么就是不记录数组里的数组内的元素,也就是只记录最外层数组的元素个数,而我们改为1的话,那么就会记录数组内数组的元素个数,所以上面count($shuzu,1) 的值才为3,其实这个还是很容易理解的,我们直接数就可以了,array()算一个,然后2算一个,接下来 array()内的1也算一个,所以结果为3,如果我们更改为 array(array(1,2,3),2)的话,那么还是那么数就行了2+3结果为5。其实这个还是很简单的,只要看过一遍就会了,当时不会是因为我确实没有看到过,所以将这个函数方法的第二个参数记录下来。如果有什么疑问可以在评论区留言,我会在看到的第一时间回复。
2020年12月18日
5 阅读
0 评论
0 点赞
2020-12-14
PHP &的应用
这篇文章,简单说一下&这个的用法吧。这个&其实在c语言中用的非常的多,当时第一次在php中看到的时候,还以为是干什么的呢。没想到它的作用是引用。在php中使用引用的话,就需要在变量或者函数、对象等的前面加上&符号实际上在PHP 中引用的意思是:不同的名字访问同一个变量内容。是不是有点不太明白呢?简单举一个例子。<?php $a="ABC"; $b =&$a; echo $a; echo $b; $b="EFG"; echo $a; echo $b; //ABC ABC EFG EFG 当然其实并没有换行的,但是为了明显,加一下换行。可以看到我们一开始的b确实是跟a相同的,但是后来我们修改b的值,没想到a的值也修改了,这就是引用的用处了。 我们应该知道,其实他这个变量的值是一个引用地址的过程,a指向了ABC这个地址,然后呢,我们通过&使得b也选择了ABC的地址,虽然看着a和b是不同的,但是实际上ab相当于是同一个量,所以修改b的话,a的值也会修改。 然后其实后面说的也是这么一回事,简单说一下吧。 通过函数来调用这个值。 <?php function test(&$a){ $a=$a+100; } $b=1; echo $b; test($b); echo "<br>"; echo $b; //1 101 其实可以看到调用函数之前,我们的b还是1,但是因为我们函数传参的话,是传递的引用的量,所以我们的a实际上和b就是同一个值了,所以最后输出的就是101了。 学术性的解释一下,这里$b传递给函数的其实是$b的变量内容所处的内存地址,通过在函数里改变$a的值 就可以改变$b的值了 而我们不想引用了呢?这里就需要使用一个函数了,unset()这个函数可以取消变量的引用。<?php $a = 1; $b =& $a; unset ($a);好了,今天的引用方法说到这里,如果有什么不懂的可以在评论区留言,我会在看到的第一时间进行回复的
2020年12月14日
2 阅读
0 评论
0 点赞
2020-12-13
PHP sort() 函数
今天在做php习题的时候,发现其实之前学习到的知识掌握的并不牢固,特别是对于一些函数的应用,感觉跟没学一样。所以今天简单的总结一下sort()函数的用法。 下面关于PHP提供的内置数组排序函数说法错误的是()A、排序函数可以根据需要设置排序的类型B、sort()函数默认将数组元素作为英文字符进行排序C、asort()可在保持键值关系的同时对数组进行排序D、rsort()可以实现数组从高到低的逆向排序 这道题,其实很简单的,但是由于对知识的掌握并不牢固,所以对B的判断出现了错误,我记得我当时应该选的是C好像,还是别的,反正没想出来。说一下为什么会做错,是因为sort()函数是将数组进行排序,然后我就想到了["pink","apple","blue"]这三个使用sort()函数排序的话会变成["apple","blue","pink"]这样,既然排序变成这样了,那么其实应该就是按照英文字符进行排序的啊。这就是我错误的地方了。其实它这个sort()函数是将数组进行排序,而不是默认将数组元素作为英文字符进行排序的。如果说默认当作英文字符,那么数字呢?所以其实sort()函数的定义其实是,sort()函数对数值数组进行升序排序。不光可以根据英文字符排序,还可以根据数字等等吧,进行排序。简单看一个关于数字的实例吧。 <?php $numbers=array(4,6,2,22,11); sort($numbers); $arrlength=count($numbers); for($x=0;$x<$arrlength;$x++) { echo $numbers[$x]; echo "<br>"; } ?>而排序结果呢?2 4 6 11 22 显而易见,这是根据数字进行排序的。而且其实sort()函数的语法其实是sort(array,sortingtype);前面的array很好理解,就是数组,规定一下要排序的数组,而后面的sortingtype呢?其实这个sortingtype是一个可选的参数,它规定了如何排列数组元素,可以选择的值有0,1,2,3,4,5怎么用呢?直接在后面加就行了,比如说前面的那个sort($numbers)我们只要在后面加上参数就行了比如说sort($numbers,1);在接下来我们简单说一下这个参数有啥用吧。 0 = SORT_REGULAR - 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)。1 = SORT_NUMERIC - 把每一项作为数字来处理。2 = SORT_STRING - 把每一项作为字符串来处理。3 = SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。4 = SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。5 = SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。 所以其实如果有什么特殊的需求只需要在后面加上参数即可。如果没有别的需要的话,不需要加默认即可。
2020年12月13日
3 阅读
0 评论
0 点赞
2020-12-10
php 常用数组函数有哪些?
php中,一些函数是通过利用数组的指针来进行操作的。今天简单谈一下数组中的指针操作函数。今天其实写这篇文章,是为了记录一下自己的一些疑惑以及自己的解答罢了。大多数人都应该直到,php中指针操作函数有7个,分别是 current() , key() , next() , prev() , each() , end() , reset() 但是实际上随着php的版本更新,其中有的方法已经不适用最新版的php了。关于each()比如说each(),这个函数我其实看到的第一眼就觉得有些眼熟,这个不就跟之前说的那个foreach很像么,如果不知道foreach可以看这篇 foreach循环 的文章然后在看一下对each()的描述。获取数组中当前的键值对,并将数组指针向前移动一步感觉其实比不明白什么意思,实际上这个就是类似于一个遍历了,获取这个数组中下标为0的元素的所有的值,下标和值以及对应的数值都会被获取到。简单举一个例子,先说明前面的获取数组当前的键值对。 <?php header("Content-Type:text/html;charset=utf-8"); $array = array("php基础示例"=>'php',"asp基础实例"=>'asp',"jsp基础实例"=>'jsp',"php函数大全"=>'phph'); echo "<pre>"; print_r(each($array)); echo "</pre>"; 使用pre这个html标签是为了保留格式,要不然出现的结果其实还是有点丑的,具体可以自己尝试一下。 /*Array ( [1] => php [value] => php [0] => php基础示例 [key] => php基础示例 )*/ 首先其实最容易看到的就是key和value了,这个是相当于是索引形式,而0,1则类似于关联形式。这个就是获取键值对了,那么向前移动一步是什么意思呢?我们其实只需要再加一下print_r(each($array))就能看到效果了 <?php header("Content-Type:text/html;charset=utf-8"); $array = array("php基础示例"=>'php',"asp基础实例"=>'asp',"jsp基础实例"=>'jsp',"php函数大全"=>'phph'); echo "<pre>"; print_r(each($array)); echo "</pre>"; echo "<pre>"; print_r(each($array)); echo "</pre>"; /*Array ( [1] => php [value] => php [0] => php基础示例 [key] => php基础示例 ) Array ( [1] => asp [value] => asp [0] => asp基础实例 [key] => asp基础实例 )*/ 可以看到,虽然都是 一样的 代码,但实际上内在的内容已经不同,这是因为数组内的指针并不相通了,这就是向前移动一步,实际上是相当于向右移动一步。而这个each一般是用在了循环上,循环遍历一下索引数组,自我猜测应该是在没有foreach循环的时候循环索引数组使用的方法。 <?php header("Content-Type:text/html;charset=utf-8"); $array = array("php基础示例"=>'php',"asp基础实例"=>'asp',"jsp基础实例"=>'jsp',"php函数大全"=>'phph'); while(list($a,$b) = each($array)){ echo "{$a}=>{$b}"; } /*php基础示例=>phpasp基础实例=>aspjsp基础实例=>jspphp函数大全=>phph*/ 轻松得到数组的遍历结果。那么接下来讲一下为什么要废弃这个函数,说白了我认为其实还是因为有点小麻烦,再加上已经有了foreach了,所以就把它给废弃了。在php7.2以上的版本运行会发出警告,但是还是可以得到结果。 Q A PHPUnit version 6.0.0 PHP version 7.2.0RC6 Installation Method Composer Running PHPunit on PHP 7.2 results in a deprecated warning: PHP Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/travis/build/spatie/laravel-binary-uuid/vendor/phpunit/phpunit/src/Util/Getopt.php on line 39 PHP Stack trace: PHP 1. {main}() /home/travis/build/spatie/laravel-binary-uuid/vendor/phpunit/phpunit/phpunit:0 PHP 2. PHPUnit\TextUI\Command::main() /home/travis/build/spatie/laravel-binary-uuid/vendor/phpunit/phpunit/phpunit:53 PHP 3. PHPUnit\TextUI\Command->run() /home/travis/build/spatie/laravel-binary-uuid/vendor/phpunit/phpunit/src/TextUI/Command.php:135 PHP 4. PHPUnit\TextUI\Command->handleArguments() /home/travis/build/spatie/laravel-binary-uuid/vendor/phpunit/phpunit/src/TextUI/Command.php:146 PHP 5. PHPUnit\Util\Getopt::getopt() /home/travis/build/spatie/laravel-binary-uuid/vendor/phpunit/phpunit/src/TextUI/Command.php:291 PHP 6. each() /home/travis/build/spatie/laravel-binary-uuid/vendor/phpunit/phpunit/src/Util/Getopt.php:39 所以其实现在还是别使用each了,循环遍历的话,还是用foreach吧。关于其余的函数而其余的几个函数其实都很简单。我们可以简单看一个图。我们数组的初始指针是在1的位置,但是它的下标值为0,而 我们使用函数的时候,下标值根据函数的作用发生改变 ,比如说前面的each(),使用一次each(),那么指针就会+1,所以才会出现上面两次输出each()的话,结果不同,而我们的next()和prev()就是如此,一个+1一个-1而end()和reset()则是重置为0或者变成最后一个。没有什么难度应该,说一个小知识点如果我们在指针为0的时候使用prev()或者在最后的位置使用next()的话,会得到false,这是因为我们如果在头/尾使用向前或下一个的时候,并没有值了,所以返回false。这就是为什么each()可以遍历数组的原因了,因为我们使用while循环,然后设置条件即可,如果到结尾的时候再下一步的话,就会返回false,而我们的while循环就会停下了。关于while each()循环可以看上面的那串代码,应该是没有什么难度的。如果有什么不懂的,可以在评论区留言,我会在看到的第一时间进行回复的。
2020年12月10日
2 阅读
0 评论
0 点赞
2020-12-04
php foreach循环,索引数组
php中的索引数组是什么呢?它该如何遍历。php中foreach循环是什么?为何它能够遍历索引数组呢?欢迎收看本期php课程之php中的foreach循环以及索引数组。哈哈,上面的是随便写的啦。我们先回归正常模式,首先呢,我们先了解一下php中的数组吧,数组,其实我觉得一开始应该是没有的,大概率一开始只有数字和字符串,然后再有的别的,当然,我随便瞎扯的。数组我认为其实就是为了方便储存,比如说我们储存一下手机号,如果没有数组的话,那就需要一个变量名后面跟一个手机号吧,总不能我定义一个$shoujihao ='11111,3333,1111,5555,111'吧,是不是总不能这么储存,而我们如果每一个手机号都单独命名一个变量的话,真的是非常麻烦的,特别是我这种没文化的,起名字起的非常的水,只会shoujihao1,shoujihao2来起名。所以数组就出现了,我们只需要把需要储存的同一类型的数据储存到同一个数组就行了,之后利用下标就可以调用了。简单的举一个小例子:<?php $xlz=array("123","456","789"); echo $xlz[0] . ", " . $xlz[1] . " , " . $xlz[2] . "."; ?> //123, 456 , 789.结果其实不用看也知道,我们通过下标就能把数据提取出来了,比之前方便的多很多,毕竟我们这样只需要记一下下标值就行了。然后呢,切入正题,说一下我们的主角,索引数组。这是个什么东西呢?我觉得这就是因为其实这个数组还是不是很明显,想要把数据表现得更加明显一些。不过其实我觉得这个还不如用字典呢,字典这个东西也是很厉害的呢。索引数组 索引数组 索引数组索引数组其实跟字典类似,就是把普通数组中的下标给换成了自定义的下标而已,然后通过自定义下标的值来进行调用。索引数组也简单的举一个小例子,今天上课老师举的,至于为什么不我不自己举一个,是因为水平有限!$color = array('one'=>'red','two'=>'blue','three'=>'black','four'=>'white');这就是一个简单的定义索引数组了,而我们要怎么把数据提取出来呢?当然还是跟前面的一样啦,只不过把数字换成了我们自定义的下标而已。echo $color['one']//red简单的输出一个值,当然,一定要记住,既然你自定义下标了,那么需要加一下引号,当然,你自己定义的时候加的一定要加。接着就说一下我们另一个主角咯,foreach了。我们都知道,既然储存了数据,那么肯定是要提取出来的,而我们之所以用数组我觉得大概率就像上面所说的,储存大量相同类型的数据,所以这就离不开for循环的遍历了,毕竟提取大量数据肯定还是用循环遍历出来舒服啊。而我们普通的遍历,只需要设置初始值为0即可提取所有的数据了,那我们的索引数组呢?foreach foreach foreach我们通过foreach来循环遍历索引数组中的值,就直接使用前面的例子了。$color = array('one'=>'red','two'=>'blue','three'=>'black','four'=>'white'); foreach($color as $key =>$vaule){ echo '$key'.$key.'$vaule'.$vaule.'<br>'; }可以看到,我们的()内的值跟for是不同的,这是必然的,哈哈。简单讲解一下,$color这个是数组名,然后as是必须的,而后面的$key =>$vaule跟我们定义的时候是不是很像,所以其实$key就是前面的下标值(突然想起来这个应该叫键值吧),$vaule这个就是后面的储存的值了,然后我们看下结果再说重点。$keyone$vaulered $keytwo$vauleblue $keythree$vauleblack $keyfour$vaulewhite结果就是像上面这样,一个键跟一个结果。不过不要误会,$key和$vaule不是规定的,这个是随意的,你想叫什么名就叫什么名。然后除了这种,其实还有别的遍历的方法,当然,都是foreach了。还是举我们前面的例子吧,主要是懒得想别的例子了。$color = array('one'=>'red','two'=>'blue','three'=>'black','four'=>'white'); foreach($color as $vaule){ echo $vaule.'<br>'; } //red blue black white很容易理解,就是得到了我们想要的值。最后,再讲一个重点吧,&这个符号相信大家都不陌生,c语言经常要用到,说实在的我一开始确实没想到这个有啥用,为啥子会用在php的foreach循环上。不知道正在阅读的你是否也懵逼了呢?下面让我先上两个小例子,分别是加了&和不加&的同一个遍历。$arr = array(1, 2, 3, 4); foreach ($arr as &$value) { $value = $value * 2; echo $value; } $arr = array(1, 2, 3, 4); foreach ($arr as $value) { $value = $value * 2; echo $value; }很容易得到结果,都是2,4,6,8。可能有人会问了,既然都是2468,那他们有什么特别之处呢?只需要在后面加上一个简单的数组输出,就能看出区别了。var_dump($arr);我们加上var_dump($arr);这个后,再看结果的话,会发现加了&的数组输出还是2468,而我们不加的,数组又变回原本的了,这是为什么呢?实际上,foreach是不推荐在循环内修改$vaule的值的,这是因为foreach循环依赖内部数值指针,如果修改可能就会发生意外,所以上面就出现意外了。举一个我看到的例子:$x = array("a", "b", "c"); foreach ($x as &$value) { echo $value." "; } echo "<br/>"; foreach ($x as $value) { echo $value." "; } 这一个,理论上都应该输出的是a b c而第二个循环输出的却是a b b这是为什么呢? 还是那句话,因为它依赖他,所以他修改的话,以来他的它就会发生意外。 简单来说,我们如果修改了值,那么实际上应该得到的结果就是我们修改出来的值,而因为foreach就是引用赋值,把值引用了然后再修改,就相当于没修改了,而我们加上了&这个的话,就会使得修改变成真实的了。 其实第一种和第二种还是有区别的,第二种再说一下,就是我们第一个foreache循环的时候,已经把值给修改了,给$vaule修改了,然后我们下面调用的时候会受到影响,也就是说数组最后一个元素的 $value引用在 foreach循环之后仍会保留,所以后面在使用$vaule的话就会受到影响了。 而第一种就是因为引用问题了。 如果想要避免这些意外的话,最好的办法就是不用!其次就是使用foreach循环的时候,不修改其中的值,然后再就是假如说我们要连续用几次foreach循环的话,那么最好把后面的变量名改一下,前面用$vaule的话,后面不要使用$vaule了。 就是这样,简单一说吧。如果有什么不懂的可以在评论区留言,我会在看到的第一时间进行回复的,当然,如果有问题或者不同的见解,也欢迎指出,谢谢。
2020年12月04日
3 阅读
0 评论
0 点赞
2020-12-03
php explode()函数的用法是什么?
心态爆炸,刚才在编辑文章的时候,点了一下x号,白写了。php explode()函数的用法是什么呢?下面让我来讲解一下,之所以发一下php的文章,是因为今天正好学了这方面的内容,然后自己有感觉比较重要,所以记录一下。众所周知,我们php的数据许多都是要通过前台传递的,而我们有时候会一个文本框传递许多的内容,那么我们就要对传递过来的数据进行处理,否则会出现错误。而explode就应命运而生了(我瞎扯的),他的作用是把字符串打散为数组。<?php $str = "zjzdmc.top"; print_r (explode(".",$str)); ?> /* Array ( [0] => zjzdmc [1] => top ) */简简单单发一个示例,我们可以看到,explode函数需要我们传递两个参数(例子中的),分别是"."和$str,后面的$str很好理解,就是前面定义的那一串字符串,前面的"."呢,这是干什么的。这个就是我们的分隔符,通过它我们可以选择想要分隔的内容然后得到我们想要的数据,当然,它分隔出来的内容是由数组构成的。不要看上面的内容就觉得explode只能分隔出两份内容,他是根据你的分隔符来决定的!比如说我换一个网址进行测试。<?php $str = "www.baidu.com"; print_r (explode(".",$str)); ?> /* Array ( [0] => www [1] => baidu [2] => com ) */得到上面的数据了。其实explode不光可以传递两个参数,它还可以传递第三个参数。我们简单来看一个例子:<?php $str = 'one,two,three,four'; // 返回包含一个元素的数组 print_r(explode(',',$str,0)); print "<br>"; // 数组元素为 2 print_r(explode(',',$str,2)); print "<br>"; // 删除最后一个数组元素 print_r(explode(',',$str,-1)); ?> /* Array ( [0] => one,two,three,four ) Array ( [0] => one [1] => two,three,four ) Array ( [0] => one [1] => two [2] => three ) */后面的第三个参数是分隔出来的数组有几个,比如说0的话,就是一整个不分隔,然后2的话就是两个了,以第一个分隔出来的内容为中点,前后各自组成一个内容,我们可以看到它内容是通过","来进行分隔的,而第一个","就在one的后面,所以我们就把one和其余的分隔起来了,而-1呢?这个就是相当于先全部分隔出来,然后我们根据数字来删除内容,之后再把留下的内容输出出来。我们改成-2的话/* Array ( [0] => one [1] => two ) */就只有两个结果了,所以可以侧面证明我们说的是正确的。然后再举一个小例子吧。我们的php总是要与前端进行交互的,而我们就讲一下交互的内容。首先我们需要计算一下1,2,3,4,5,6这6个值的平均值,而我们由于前端偷懒,只写了一个输入框,那么我们就要使用" "来进行分隔之后输入。先上一下html代码,由于篇幅问题,我们只写关键内容。<form action="1.php" method="POST"> <input type="text" name="shuzhi"> <input type="submit" value="计算"> </form>就是一个简单的表单。然后我们看一下php的内容。<?php $a =$_POST['shuzhi']; $c = explode(' ',$a); $r = 0; for($e =0;$e<count($c);$e++){ $r+=$c[$e]; } echo $r/count($c);非常简单易懂,一看就会,哈哈。简单的讲解一下,前面的html就是通过input来进行输入以及提交,后面的php通过$_POST['shuzhi']来获取数据,然后通过explode来进行分隔,最后再用for循环遍历出来数组内容就行了,非常简单。可以看到我php并没有写后缀,这个其实我在之前有说过的,如果只是单一的php文件,没必要添加结束符,不过如果不是单一的php文件,那还是需要添加的。这样我们就完成了简单的交互了。今天舍友过生日,一般文章就更新这一篇了,晚上要一起吃个饭啥的,祝潘维昊生日快乐!如果有什么不懂的,可以在评论区留言,我会在看到的第一时间进行回复的。
2020年12月03日
6 阅读
0 评论
0 点赞
2020-11-12
php 表单提交
首先呢,本地演示需要开启本地服务器,使用 phpstudy 或者 apache 或者别的都可以。然后修改一下host,使得不需要输入localhost就能访问本地网站。说一下流程就是你在html页面创建一个<form>然后设置action为你的php文件名,之后method选择post/get都可以。接受数据使用的就是$_POST/$_GET,不过其实还需要加上你的name,具体代码实现可以看下面的例子html代码< form action = "444.php" method = "post" > < input type = "text" name = "nl" > < input type = "submit" value = "提交" > </ form >php代码<?php $age = $_POST [ "nl" ]; if ( $age > 18 ){ echo "你要对自己的行为负责" ; } ? >一个非常简单的例子,判断年龄是否大于18岁,name就相当于你的标志,这样你后面的$_POST[]里[]才好确认自己接受的是哪个的数据。下面说一下$_GET和$_POST的区别$_GET变量是一个包含名称[name]和值[value]的数组(这些名称和值是通过HTTP GET方法发送的,且都可以利用)。$_GET变量使用“method=get”来获取表单信息。通过GET方法发送的信息是可见的(它将显示在浏览器的地址栏里),并且它有长度限制(信息的总长度不能超过100个字符[character])。$_POST变量是一个包含名称[name]何值[value]的数组(这些名称和值是通过HTTP POST方法发送的,且都可以利用)$_POST变量使用“method=POST”来获取表单信息。通过POST方法发送的信息是不可见的,并且它没有关于信息长度的限制。其中一个区别就是一个相对安全一个相对不安全,之前看到了一个比喻感觉非常形象:在万维网的世界中,TCP就像是一辆汽车,我们通过TCP来运输数据,它非常可靠,从来不会发生丢件少件的现象。但是如果道路上跑的全都是看起来一模一样的汽车,那这个世界貌似是一团混乱,送加急的汽车可能被前面满载货物的汽车拦堵在路上,整个交通系统一定会瘫痪。为了避免这种情况发生,交通规则HTTP诞生了。HTTP给汽车运输设定了好几个服务类别,有GET, POST, PUT, DELETE等等,HTTP规定,当执行GET请求的时候,要给汽车贴上GET的标签(设置method为GET),而且要求把传送的数据放在车顶上(url中)以方便记录。如果是POST请求,就要在车上贴上POST的标签,并把货物放在车厢里。当然,你也可以在GET的时候往车厢内偷偷藏点货物,但是这是很不光彩;也可以在POST的时候在车顶上也放一些数据,让人觉得傻乎乎的。HTTP只是个行为准则,而TCP才是GET和POST怎么实现的基本。上面的比喻非常的形象,毕竟一个放在头上一个放在车厢,谁安全谁不安全一眼就能看出。其次还有一个区别就是 GET只会产生一个TCP数据包,而POST则会产生两个TCP数据包。不过其实这也不能说明哪个方法好一些,如果传输过程稳定,那么其实get方法比较好,毕竟一次就传输过去了,而post要先发送一个请求,相当与我运输货物前,我先去跟你打个招呼说“你要的xx一会我就要运过来了,记得收一下”然后再去发送。具体使用需要看自身或客户需求,毕竟虽然感觉作用类似但实际上内在大多不同,GET与POST都有自己的语义,不能随便混用。
2020年11月12日
2 阅读
0 评论
0 点赞