本章要讲的是PHP的全局变量。php
这里讲个小故事:程序员
不少年前,一个很聪明的小偷,想去偷一户人家的钱。但是他偷不到主人的钥匙,怎么办呢?web
他想到了一个办法,去以前嚼了一块口香糖,口香糖的牌子是“大大泡泡糖”。数据库
这里咱们来说个泡泡糖的插曲。微信
不知道你们小时候有没有吃过“大大泡泡糖”。绿箭一开始在中国面世的时候并不被老百姓接受,那时的人尚未嚼口香糖的习惯(如口气清新、时尚啥的彻底没有概念),因而箭牌公司("大大"其实就是这个公司的产品)的老外在收购了一家糖果公司后推出了大大泡泡糖。架构
这里老外发现,那时的中国要想推一种食品,外观和感官体验很重要,口味却是其次的。譬如绿箭,就是用来咀嚼的,老外发现当时的中国人吃口香糖是为了好玩。因而,大大泡泡糖在中国推广时一炮打响,由于除了水果口味好吃,还很好玩,你们还能一块儿吃,看看谁的泡泡大,起到了娱乐性效果(比大小一直是国人娱乐的重要途径)。wordpress
小偷的方法很特别:把大大泡泡糖嚼后趁其软状塞入锁孔,十分钟冷却后再拉出,因而钥匙的形状搞定了。(为什么须要用大大泡泡糖的缘由是这种泡泡糖冷却后不粘手)。函数
正式剧情开始了:post
一、 小偷用配来的钥匙如愿以偿偷到了这户人家的东西,这户主人居然是贪官,家里还有金条学习
二、 本想再偷隔壁一家,在继续用泡泡糖塞入锁孔时发现用刚才那把钥匙依然能开旁边人家的锁。
三、 接连开了该楼层其余几户,发现都能开。后来小偷明白了,这个贪官买了这一个楼层全部住户,用的是同一款门锁
四、 因而小偷的这把钥匙几乎成了“万能钥匙”。
故事先讲到这,咱们来看段代码:
<?php //解释一下,咱们把$str 这个变量当作 钥匙,请看如下分解 $str="主人的钥匙"; function steal() //steal 是”偷”的英文 { if($str!="") echo "偷到钱了"; else echo "毛也没偷到"; } steal(); ?>
你们运行一下会发现,输入的结果是:毛也没偷到。
这是为何呢?
上面不是定义了$str是"主人的钥匙"了吗?为啥仍是啥都偷不到?
缘由以下:
由于主人的钥匙藏在了他身上,做为小偷也要有点节操,要偷必须得本身配一把。
因而上述代码要这么改:
<?php $str="主人的钥匙" $str_copey=$str;//小偷用口香糖塞了进去,复制了一把钥匙,和主人的钥匙是如出一辙的。因而接下来大干一场吧 function steal() //steal 是”偷”的英文 { global $str_copey;//使用了口香糖钥匙 if($str_copey!="") echo "偷到钱了"; else echo "毛也没偷到"; } steal(); ?>
结果已经很明显了:很顺利的偷到了钱
PHP知识点讲解:
1、global 关键字便是申明全局变量的关键字。
2、虽然在steal的过程当中有一个变量也叫str,可是这个str并不是外面的str,它只能做用于steal这个函数体内。也就是说小偷若是用本身家门的钥匙是打不开别人家的门的
3、复制事后的钥匙很好用。
若是你们懂了全局变量,那么上面的代码只要这么写便可:
<?php $str="主人的钥匙" function steal() //steal 是”偷”的英文 { global $ str; //全局变量 if($str!="") echo "偷到钱了"; else echo "毛也没偷到"; } steal(); ?>
故事继续:
这个小偷利用大大泡泡糖的方式偷了好多家,时间久了,他愈来愈出名,连不少开锁公司都请教他到底如何才能仿制人家的钥匙。
小偷很聪明,他历来不把如何用泡泡糖塞入锁芯变成模具最后能复制一把钥匙的方法告诉任何人。因而其余同行小偷只能每次要偷钱时来请这位小偷来配钥匙,这个小偷后来索性不作小偷了,作起来配钥匙正规行当,也开了一个开锁公司。
因而,一个小偷从良的故事被传为了"佳话"。
故事结束(以上故事纯属虚构,若有雷同,不胜荣幸),咱们再来看段代码
首先,创建一个文件,叫作makkey.php,代码以下:
<?php $str="主人的钥匙"; $str_copey=$str; //大大泡泡糖配置钥匙的方式但是很复杂的哦 ?>
而后,再创建一个文件,就叫作stealmoney.php
代码以下:
<?php include("makkey.php"); function steal() //steal 是”偷”的英文 { global $str_copey; //使用了小偷公司专门研发的口香糖复制钥匙 if($str_copey!="") echo "偷到钱了"; else echo "毛也没偷到"; } steal(); ?>
输出结果?必定能偷到钱。
这里有两个知识点:
1、写出好的程序要学会把类库和业务逻辑封装成可复用的方法库。
上面的include("makkey.php");就是封装, 假如$str_copey=$str;是一个很复杂的过程,那么咱们必须学会如何封装这么一个方法库,让其余程序员能够继续复用你的成果
你们这下应该知道为什么要封装了吧。
2、使用include方式,global 依然有效
额外小知识:
若是你们在作wordpress二次开发,想自定义一些页面,除了使用wp自带的函数还能本身作一些底层级别的数据调用。代码以下:
<?php require(dirname(__FILE__) .'/wp-blog-header.php' ); //上面就是wordpress基本的函数库封装 global $wpdb; //这个是wordpess 数据库操做的基本对象 $result=$wpdb->get_results(“select * fromwp_posts); var_export($result); ?>
你们动手试一下吧,其实还有不少功能,此处不表。你会发现wordpress之因此这么优秀,是由于其二次开发的便捷性、高效性、灵活性确实很强
学会写程序—>写出好程序——>封装方法库——>方便你我他.
一个好的程序架构就是这么开端的。
补充:
你们可能还会学到$GLOBALS,这个叫超全局变量。请你们自行搜索。不讲这个知识是由于不怎么推荐使用。意义不大,若是要用何须用PHP?
本章总结:
任何知识都来源于生活,技术也不例外,不断疯狂学习技术的最终目的是:改善家人的生活质量、提高本身的生活品质,这才叫“技术改变世界"——微观角度。
------------------------------------
关注个人微信公众号,天天成熟一点点
关注步骤:
很直接的拿出手机->打开微信->点扫一扫,扫下面二维码便可