3期-Shawn
关注

关注后可及时了解他的动态信息

课程笔记
  • 所属章节课程:php基础语法之自加自减

    <?php $x = 5; $y = 6; $foo = $x++ + $x--; echo $x."<br>"; echo $y."<br>"; echo $foo."<br>"."<br>"; $bar = ++$y + ++$x; echo $x."<br>"; echo $y."<br>"; echo $bar."<br>"."<br>"; $cup = $x-- + $y--; echo $x."<br>"; echo $y."<br>"; echo $cup."<br>"."<br>"; $paper = ++$x + $x++; echo $x."<br>"; echo $y."<br>"; echo $paper."<br>"."<br>"; $water = $y-- + $x--; echo $x."<br>"; echo $y."<br>"; echo $water."<br>"."<br>"; echo $water + $paper; ?>

    2018-06-160个赞

  • 所属章节课程:php基础语法之逻辑运算

    用代码表示:if($x && $y) 如果$x已经为false了,后面的$y 就没有执行必要了。 逻辑或:前面第一个条件为true了,后面就不用执行了。 用代码表示:if($x || $y) 如果$x已经为true了,后面的$y 就没有执行必要了。 我们写段代码来证明一下: <?php $x = false; $y = 2; if($x && $y++){ echo '真'; }else{ echo '假'; } //结果还为2,说明没有执行$y++ echo $y; ?> 代码如下,将两个&符改为一个&符试试: <?php $x = false; $y = 2; if($x & $y++){ echo '真'; }else{ echo '假'; } //再看看结果 echo $y; ?>

    通过上例我们知道了&&与&的区别,||和 |的区别。我们也了解了什么是短路。那我们在什么地方可以用到短路呢?有一些奇怪的写法,我们必须了清楚。其实就是基础语法的再应用。 回顾3.3.1最后一段内容: <?php //如果为defined('AUTH')存在AUTH常量则为true,不访问后面的exit了。如果为false则执行exit defined('AUTH') or exit('存在安全因素不准访问'); ?> 上面的一段代码就是典型的短路应用的代码 exit 的意思是指在此处停止运行,退出。后面的PHP代码不再执行了。它有两种用法: 1,直接exit; 就是直接退出 2,exit(‘提示内容’),退出的时候还给出一段提示内容

    2018-06-160个赞

  • 所属章节课程:PHP基础语法之 三元运算符和其它运算符

    三元运算符,相当于是if...else结构。不过三元运算符的写法更加简洁,语法格式如下: $x? 真代码段(只能写一句代码):假代码段(只能写一句代码); 代码如下: <?php $x = true; $x ? $y = 5 : $y = 6; //输出5 echo $y; ?> 反引号就更加特殊了,我们经常需要显示IP地址,在PHP里面可不可能显示我们windows的IP地址呢?用反引号,就可以执行我们的命令(不过有些虚拟服务器是禁止执行这些的命令脚本的): <?php echo '<pre>'; echo `ipconfig`; echo '</pre>'; ?> 上面的代码你执行看看效果,是不是显示出来了你机器的IP地址和一堆和IP相关的参数?

    2018-06-160个赞

  • 所属章节课程:PHP流程控制之分支结构switch语句的使用

    王同学家里头特别有钱,所以他的行程方式和正常人的又有些不一样。 他的出行方式呢有6种,如下: 1,司机开车 2,民航 3,自己家的专机 4,火车动车 5,骑马 6,游轮 他的方式有6种,而骰子也真好有6面。所以,我们用if...elseif...的判断方式可以实现,但是效率太低了。 还有其他更好的方式吗?我们可以使用到一种方式就是:switch...case语法。 switch...case的语法结构如下: <?php switch(变量){ //字符串,整型 case 具体值: 执行代码; break; case 具体值2: 执行代码2; break; case 具体值3: 执行代码3; break; default: } ?> switch后放需要判断的变量,而case后是放结果。switch后变值为多少,case的值写的与switch变量执相同段的代码。 上面的break是可选的 上面的default也是可选的 不要在case 后面写成分号,后面是冒号: 不要在case后面写判断区间,如($foo > 20 或者 $foo == 30) switch里面在变量最好是 整型,字符串,因为布尔判断更适合if...else.. 上节课中我们用到了rand函数,那我们现在来用rand实现王思总同学的问题选择: <?php //定义出行工具 $tool=rand(1,6); switch($tool){ case 1: echo '司机开车'; break; case 2: echo '民航'; break; case 3: echo '自己家的专机'; break; case 4: echo '火车动车'; break; case 5: echo '骑马'; break; case 6: echo '游轮'; break; } ?> 上面的代码我们只需要简单修改,就可以实现我们在微信上面玩的一个小游戏简单的家务骰子和剪刀石头布。你想想? 你再做做实验: 我们可以把 case 1 代码段中的break去掉,你再试试,什么效果? 我们再来写一个简单的星期判断,写法也可以变的怪一些哟: <?php //得到今天是星期几的英文简称 $day = date('D'); switch($day){ //拿学校举例,我们让星期一、二、三是校长日 case 'Mon': case 'Tue': case 'Wed': echo '校长日'; break; echo '星期三'; break; case 'Thu': echo '星期四'; break; case 'Fri': echo '星期五'; break; default: echo '周末,周末过的比周一到周五还要累<br />'; }; ?> 自己做实验试试: 上面的例子发现,不匹配的时候就执行了defaultk吧? 当然你也可以这样,不过这种写太太累了,没有if...else更加简单。我们不用swith...case来做true和false判断

    2018-06-170个赞

  • 所属章节课程:php流程控制 之循环语句的使用

    环语句的使用 王同学需要反复往返于北京和大连,就是典型的循环结构。假设王思总投资这个项目需要往返大连100次,每次往返都王同学都会计数一次。难道我们写一百遍同样的代码?显然对于智商极高的程序员来说不可能这样处理。 我们抽象了人类的这种思维。我们定义一种循环结构 <?php //定义需要往返的次数,老外喜欢从0开始计数,我们也从0开始计 $count = 0; //while后面接布尔值判断,为真执行,为假停止 //$count 小于100的时候执行,也就是$count为0至99的时候执行 //如果$count不小于100了,循环停止执行后续的代码 //循环开始处 while($count < 100){ echo '我是王思总,我是第' . $count .'次出差<br />'; //每次执行让$count+1,这样的话,就不会产生$count永远小于100的情况了 $count++; //循环结束 } echo '后续代码'; ?>

    2018-06-170个赞

  • 所属章节课程:php自定义函数之回调函数

    变量函数和回调函数结合的一个章节。 <?php function woziji($one,$two,$func){ //我规定:检查$func是否是函数,如果不是函数停止执行本段代码,返回false if(!is_callable($func)){ return false; } //我把$one、$two相加,再把$one和$two传入$func这个函数中处理一次 //$func是一个变量函数,参见变量函数这一章 echo $one + $two + $func($one,$two); } //我们定义几个函数试试 function plusx2( $foo , $bar){ $result = ($foo+$bar)*2; return $result; } function jian( $x , $y ){ $result = $x - $y; return $result; } //调用一下函数,woziji,向里面传入参数试试 echo woziji(20,10,'plusx2'); //将plusx2改成jian试试结果 echo woziji(20,10,'jian'); ?> 处理过程是这样的: 1.将20赋值给形参$one,10赋值给了$two,而plusx2或者jian这两个变量函数,赋值给了$func 2.在woziji这个函数中判断plusx2或者jian是否为函数,不是函数就return false 停止执行了 3.显示plusx2或者jian是函数。因此$one = 20, $two =10相加了,相加后,$one和$two又带入到了了$func($one,$two)中。 4.带入至里面后而$func,是可变的,可以为plusx2或者jian。如果为plusx2的话,$one = 20,$two = 10 的这个两个结果又给 了plusx2函数里面的$foo和$bar 5.$foo + $bar 乘以2后将结果返回至woziji这个函数功能体的运算处:$one + $two + $func($one,$two); 6.这样主得到了运算结果

    2018-06-180个赞

  • 所属章节课程:php自定义函数之变量函数

    变量函数。简单回顾一下之前的知识点: <?php $hello = 'world'; $world = '你好'; //输出的结果为:你好 echo $$hello; ?> 因为$hello先被解释成了world,再world前加上$符就输出了:你好。 而变量函数的用法是这样的: <?php function demo(){ echo '天王盖地虎'; } function test(){ echo '小鸡炖蘑菇'; } $fu = 'demo'; //把$fu变为了demo,把demo后加上了一个括号,就执行函数了 $fu(); //把$fu的值改为test字符串再试试? ?>

    2018-06-180个赞

  • 所属章节课程:php自定义函数之内部函数

    .内部函数名,不能是已存在的函数名 2.假设在函数a里面定义了一个内部函数,不能定用两次函数a。 我们下面来看代码,你将很快的学习会: <?php function foo() { echo '我是函数foo哟,调一下我才会执行定义函数bar的过程<br />'; function bar() { echo '在foo函数内部有个函数叫bar函数<br />'; } } //现在还不能调用bar()函数,因为它还不存在 bar(); foo(); //现在可以调用bar()函数了,因为foo()函数的执行使得bar()函数变为已定义的函数 bar(); //再调一次foo()看看是不是会报错? foo(); ?> 你会发现,在上面foo() 函数内部又定义了一个bar函数,这就是内函数数。

    2018-06-180个赞

  • 所属章节课程:php 文件包含函数

    在实际开发中,常常需要把程序中的公用代码放到一个文件中,使用这些代码的文件只需要包含这个文件即可。这种方法有助于提高代码的重用性,给代码的编写与维护带来很大的便利。在PHP中, 有require、require_once、include、include- once四种方法包含一个文件。 我们来对比他们的不同: 函数 包含失败 特点 Inlcude 返回一条警告 文件继续向下执行。通常用于动态包含 Require 一个致命的错 代码就不会继续向下执行。通常包含极为重要的文件,整个代码甭想执行 Include_once 返回一条警告 除了原有include的功能以外,它还会做once检测,如果文件曾经已经被被包含过,不再包含 Require_once 一个致命的错 除了原的功能一外,会做一次once检测,防止文件反复被包含 注意: 1,少用_once带once,因为它会消耗更多的资源去做检测的工作。

    2018-06-180个赞

  • 所属章节课程:php获取时期时间信息函数

    “亚麻跌”是PHP学习时间处理的关键 Y 英文是 year,为年份代表年 ——亚 m 英文代表month,为月份代表——麻 d 英文代表day,为日期 代表——跌 所以我们需要输出前前的年份,月份,日期的话。例如:1997年7月1日,我们就可以用到上面的三个参数。 <?php echo date('Y年m月d日'); ?> 你可以运行一下代码试试,看看是不是显示出来了。 后面还有几个参数: H:m:s 代表的是:时分秒 h 的英文为:hour 代表小时 i的英文为:minute 代表分钟 s的英文为:second 代表秒 写全了就是: <?php //就可以显示出来当前的时间了哟。 echo date('Y-m-d H:i:s'); ?>

    2018-06-180个赞

  • 所属章节课程:php日期验证函数

    checkdate可以判断一个输出的日期是否有效。 在实际的工作中,我们需要经常用于检测常用于用户提交表单的数据验证。 例如:验证用户输入的时间是否正确。 函数的语法格式如下: bool checkdate ( int $month , int $day , int $year ) 下例中,我们就可以用一个代码来进行实验,写出一段真实的例子。试试2011年有没有2月29日。 如果是有效的时间就返回真,如果不是有效的时间就返回假。 <?php var_dump(checkdate(12, 31, 2018)); var_dump(checkdate(2, 29, 2011)); ?> 输出结果: bool(true) bool(false)

    2018-06-180个赞

  • 所属章节课程:php字符串常用函数

    数组、字符串和数据库是我们函数里面最、最、最常用的三类函数. 我们最常使用的两个系列的字符串: 1.单字节字符串处理函数 2.多字节字符串处理函数 3.字符串编码转换函数

    2018-06-180个赞

  • 所属章节课程:php数组的定义

    向索引数组中增加元素 学习完了索引数组的创建,接下来我们学习索引数组的增加、修改和删除。 <?php $minren = array( '杨幂', '王珞丹', '刘亦菲', '黄圣依' ); //如何向这$minren这个数组中增加元素呢 //猜猜范冰冰的下标是多少? $minren[] = '范冰冰'; $minren[100] = '范爷'; //它的下标又为几呢? $minren[] = '李晨'; ?> 总结: 1.向索引数组中增加元素用: 数组变量名[]、数组变量名[键值]这两种方式来增加元素 2.键值的增长规则与之前的规则一样。都是最大值加1的原则。 向索引数组中删除元素 我们还拿刚刚的数组来举例: <?php $minren = array( '杨幂', '王珞丹', '刘亦菲', '黄圣依', '范冰冰' ); //假设我不喜欢:黄圣依,如何将黄圣依给删掉掉呢? //如果删除掉后范冰冰的下标为多少呢? //如果在后面再追加一个元素,会填掉:“黄圣依”留下来的空吗? unset($minren[3]); $minren[] = '金星'; echo '<pre>'; var_dump($minren); echo '</pre>'; ?> 看看效果: QQ截图20161114130646.png 1.使用unset删除变量的方式来删除数组里面的值。 2.删除了中间的值,并不会让后面的下标向前自动移动。而是原来的值为多少就为多少 3.删除掉其中的某个值,新加入的值不会替换掉原来的位置,依然遵循最大值加1的原则。 修改值 我们学习最简单的创造、增加和删除。我相信大家一定能够推理出如何修改值了。 <?php $minren = array( '杨幂', '王珞丹', '刘亦菲', '黄圣依', '范冰冰' ); $minren[5] = '范爷'; $minren[2] = '亦菲,不要嫁给韩国人好吗?'; echo '<pre>'; var_dump($minren); echo '</pre>'; ?> 执行上面的代码,输出看看结果。 1.用变量名[键] = 新值。就把数组中的值定的值修改了。

    索引数组的其他声明方式 通过上面的例子,我们学习到了数组的声明。我们来学一下数组的其他声明方式。 一、直接用之前未声明的变量,用变量名后面接中括号的方式声明数组。 <?php //直接写一个变量后面加上中括号,声明变量 $qi[] = '可口可乐'; $qi[10] ='百事可乐'; echo '<pre>'; var_dump($qi); echo '</pre>'; ?> 二、每次用array()写的太麻烦了,还可以不用写array哟,更简单。 <?php $minren = [ '杨幂', '王珞丹', 100 => '刘亦菲', '黄圣依', '范冰冰' ]; echo '<pre>'; var_dump($minren); echo '</pre>'; ?> 上面是另外两种写法。当然,你自己喜欢使用哪一种就使用哪一种来声明。

    关联数组的增、删、改 <?php $drink = [ '美' => '凤姐', '很美' => '芙蓉姐姐', 'verymei' => '王涛', '心中滴女神呀' => '杨澜', 100 => '孙俪', '娘娘', ]; //追加方式与索引数组是一样的 $drink['ynj'] = '伊能静'; //输出试试 echo '<pre>'; var_dump($drink); echo '</pre>'; //删除一个试试 unset($drink['verymei']); echo '<pre>'; var_dump($drink); echo '</pre>'; //将芙蓉姐姐 改成:心里美才是真的美 $drink['很美'] = '心里美才是真的美'; echo '<pre>'; var_dump($drink); echo '</pre>'; ?> 你动手做做刚刚的实验,你会发现操作方式与索引的操作方式一样。只不过下标在读取有点不一样罢了。

    一维数组大家很熟悉,也不难,就是声明数组嘛。二维也不难,只是在数组里面再插一个或多个数组。二维学好了,多维就学好了。 <?php $person = array( 'office' => '办公室', //注意:插入第一个数组哟 'family' => array( '爸爸', '妈妈', 'yeye' => '爷爷', 'nn' => '奶奶', ), //注意:又插入了一个平级的数组 'jiaotong' => array( '自行车', '摩托车', '汽车', '飞机', ), ); echo '<pre>'; var_dump($person); echo '</pre>'; ?> 我们执行一下看看效果: QQ截图20161114131215.png 我们发现变量person 是一个数组类型。有三个元素(size=3)。 第一个元素为 office 对应的是一个字符串“办公室”, 第二个元素为family 里面是一个数组,这个数组又有4个元素,值分别为:爸爸、妈妈、爷爷、奶奶。 第三个元素为jiaotong,里面也为一个数组有4个元素,值分别为:自行车、摩托车、汽车、飞机。 好了,二维好声明,只要把格式写对了,确定是在一个数组里面再插入一个数组就好。 那如何访问:爷爷和爸爸这两个值呢? <?php $person = [ 'office' => '办公室', //注意:插入第一个数组哟 'family' => [ '爸爸', '妈妈', 'yeye' => '爷爷', 'nn' => '奶奶', ], //注意:又插入了一个平级的数组 'jiaotong' => [ '自行车', '摩托车', '汽车', '飞机', ], ]; //访问“爸爸”这什值 echo $person['family'][0]; echo '<br />-----华丽丽的分割线------<br />'; //访问“爷爷”这什值 echo $person['family']['yeye']; echo '<br />-----华丽丽的分割线------<br />'; //访问“汽车”这什值 echo $person['jiaotong'][2]; ?> 我们看看结果如下: QQ截图20161114131256.png 上例大家会发现,访问二维数组不过是按照之前的下标读取方式依次向下读取即可。 先写上变量,中括号写上family这个下标,再写上要访问元素的下标。

    三维数组我们说了概念,那我们直接上手实验看看效果: <?php $area = array( 'china' => array( '上海', '湖北', '天津', '北京' => array( 'hd' => '海淀', '朝阳', '房山', 'cp' => '昌平', ), '广东' => array( '深圳', '广州', '佛山', 'dg' => '东莞', ), ), 'usa' => array( '华盛顿', '旧金山', '纽约' => array( '曼哈顿区', '皇后区', '布鲁克林区', ), ), ); echo '<pre>'; var_dump($area); echo '</pre>'; ?> 我们执行一下看看效果: QQ截图20161114131432.png 说明: 在变量$area下有二个数组,一个为china,一个为usa。 在china这个数组里面插入了上海、湖北、天津,又插入了北京和广东。而北京和广东又是一个数组。在北京和广东这两个数组里面分别有不同的元素。 在这usa 这个数组里面插美国的华盛顿、旧金山和纽约。而纽约下面又是一个数组,说明了纽约下面的几个区。 所以说,三维数组就是在数组里面再插入一个数组(A),在A数组里面插入一个数组。 我们接下来看看,如何来读取里面的值。 <?php $area = array( 'china' => array( '上海', '湖北', '天津', '北京' => array( 'hd' => '海淀', '朝阳', '房山', 'cp' => '昌平', ), '广东' => array( '深圳', '广州', '佛山', 'dg' => '东莞', ), ), 'usa' => array( '华盛顿', '旧金山', '纽约' => array( '曼哈顿区', '皇后区', '布鲁克林区', ), ), ); //读取华盛顿 echo $area['usa']['0']; //读取:布鲁克林 echo $area['usa']['纽约'][2]; //读取:昌平 echo $area['china']['北京']['cp']; //修改cp下标的值改为:西城区 $area['china']['北京']['cp'] = '西城区'; //输出看看原来昌平的值是否发生了变化 echo $area['china']['北京']['cp']; ?> 通过上面我们发现数组学习起来不难。 学习多维数组的难点: 注意格式,将每个维度的换行、缩进弄整齐。就不容易出错了。 【切记】 数组元素间的分割符为逗号,在数组中插入数组的时候,不要在结尾处写成了分号(;)

    2018-06-190个赞

  • 所属章节课程:php list、each函数遍历数组

    我们用图来表示: document_2015-09-03_55e84f4676360.png 这样我们一下子就看明白了。 接下来我们说说each的另外一个特性。读一次,向后移动一个元素。 <?php //定义一个变量叫$kongjie(空姐) $kongjie=[ 'gao'=>'穿黑衣服的', 'shou'=>'退特别长特别细', 'mei'=>'好白', ]; //第一次each $data = each($kongjie); echo '<pre>'; var_dump($data); echo '</pre>'; echo '-----华丽丽分割线------<br />'; //第2次each $data = each($kongjie); echo '<pre>'; var_dump($data); echo '</pre>'; echo '-----华丽丽分割线------<br />'; //第3次each【执行到了最后一个元素了】 $data = each($kongjie); echo '<pre>'; var_dump($data); echo '</pre>'; echo '-----华丽丽分割线------<br />'; //第4次【此时,后面已没有可操作的元素了,看返回什么】 $data = each($kongjie); echo '<pre>'; var_dump($data); echo '</pre>'; echo '-----华丽丽分割线------<br />'; ?> 执行结果: QQ截图20161114133417.png 总结: 1.读一次向后移动一次【可以想象有一个记录的箭头在移动】,将其中的每个元素拆解成一个新数组 2.读取到最后,没有可操作的元素了,所以返回了false。

    我们来看看下面例子: <?php //定义一个变量叫$kongjie(空姐) $kongjie=[ 'gao'=>'穿黑衣服的', 'shou'=>'腿特别长特别细', 'mei'=>'好白', ]; list($key,$value) = each($kongjie); echo $key. '-----' .$value .'<br />'; ?> 运行结果如下: QQ截图20161114133523.png 总结: 1.each 把变量拆成了4个元素 2.而list把0 =>gao 赋值给了变量$key 3.list把1 => 穿黑衣服的 赋值给了变量 $value each到最后会返回false,因此我可以用布尔型循环while来配合完成数组的循环。 把上面的代码,轻轻一改就实现了如下效果: <?php //定义一个变量叫$kongjie(空姐) $kongjie=[ 'gao'=>'穿黑衣服的', 'shou'=>'退特别长特别细', 'mei'=>'好白', ]; while(list($key,$value) = each($kongjie)){ echo $key. '-----' .$value .'<br />'; } ?> 执行演示: QQ截图20161114133617.png 总结: 1.循环一次,执行一次each,执行代码,然后向后移动一个元素 2.执行到最后返回fasle,因此停止执行。 3.可以通过each和list配合实现foreach一样的效果。

    2018-06-211个赞

  • 所属章节课程:PHP流程控制之嵌套if...else...elseif结构

    我们来了解一下他的语法规则【知识点要求:默写】 <?php if(判断语句1){ 执行语句体1 }elseif(判断语句2){ 执行语句体2 }else if(判断语句n){ 执行语句体n }else{ 最后的else语句可选 } //后续代码 ?> 上述结构表示: 如果判断语句1的值为真,则执行语句体 1。执行完成后进入后续代码段。 否则转入后面的判断语句2(elsif),判断语句2若为真,则执行语句体 2。 否则转入后面的判断语句n(elsif),判断语句2若为真,则执行语句体 n。 如果均不匹配则执行else语句。这种循环嵌套可以不含else语句,即只含有if、elseif语句。 注:elseif()也可以写成else if()

    王同学是生活极度充满娱乐化和享受生活的人。他抵达北京或者大连的时候做的事,他抵达后做的事情,如下: 半夜到达,先去夜店参加假面舞会 早上抵达,爱在酒店泡个澡 中午到达,会吃上一份神户牛肉 晚上到达,总爱去找朋友去述说一下心中的寂寞 我们来了解一下他的语法规则【知识点要求:默写】 <?php if(判断语句1){ 执行语句体1 }elseif(判断语句2){ 执行语句体2 }else if(判断语句n){ 执行语句体n }else{ 最后的else语句可选 } //后续代码 ?> 上述结构表示: 如果判断语句1的值为真,则执行语句体 1。执行完成后进入后续代码段。 否则转入后面的判断语句2(elsif),判断语句2若为真,则执行语句体 2。 否则转入后面的判断语句n(elsif),判断语句2若为真,则执行语句体 n。 如果均不匹配则执行else语句。这种循环嵌套可以不含else语句,即只含有if、elseif语句。 注:elseif()也可以写成else if() 我们把上面的代码用流程图的形式表示清楚就如下图了: 2015-08-08/55c5966bd7af5 我们可以把王思总同学的例子通过PHP代码表示出来,代码表示结果如下: <?php //定义一个随机变量,抵达时间,随机0点至23点 $dida = rand(0,23); if($dida > 6 && $dida < 10){ echo '我爱泡澡'; }else if($dida >10 && $dida < 14){ echo '吃神户牛肉'; }else if($dida >=19 && $dida < 22){ echo '找一个朋友聊聊内心的寂寞'; }elseif($dida > 22 && $dida <= 23){ echo '泡澡'; }elseif($dida >= 1 && $dida <3){ echo '泡澡'; }else{ echo '睡觉或者工作'; } ?>

    2018-06-170个赞