-
PHP作用域和文件夹操作示例
1.作用域
1.1变量作用域
1.全局变量:在函数外面
2.局部变量:在函数里面,默认情况下,函数内部是不会访问函数外部的变量
3.超全局变量:可以在函数内部和函数外部访问
在函数内部访问全局变量
- <?php
- $num=10; //全局变量
- function fun() {
- echo $GLOBALS['num']; //输出全局的$num
- }
- fun();
global关键字
- <?php
- $num=10;
- function fun() {
- global $num; //将全局变量的$num的地址引入到函数内部 相当于$num=&GLOBALS['num']
- echo $num; //10
- $num=100;
- }
- fun();
- echo '<br>';
- echo $num; //100
小结:
1.$GLOBALS保存的是全局变量的所有的值
2.global用于创建一个全局变量的引用
3.常量是没有作用域的概念
1.2静态变量(static)
静态变量一般指的是静态局部变量
静态变量只初始化一次
- <?php
- function fun() {
- static $num=10; //静态变量只初始化一次,调用完毕吧不销毁,第二次调用的时候就不再初始化
- $num++;
- echo $num,'<br>';
- }
- fun(); //11
- fun(); //12
常量和静态变量的区别:
1.常量和静态变量都是初始化一次
2.常量不能改变值,静态变量可以改变值
3.常量没有作用域,静态变量有作用域
1.3匿名函数use()
默认情况下,函数内部不能访问函数外部的变量,但在匿名函数中,可以通过use将外部变量引入匿名函数中:
- <?php
- $num=10;
- $fun=function() use($num) { //将$num引入到匿名函数中,引用多个变量时用逗号分隔开
- echo $num;
- };
- $fun(); //10
2.文件夹操作:
2.1创建文件夹(mkdir(路径,权限,是否递归创建))
- <?php
- //1、创建目录
- //mkdir('./aa'); //创建aa文件夹
- //mkdir('./aa/bb'); //在aa目录下创建bb(aa目录必须存在)
- mkdir('./aa/bb/cc/dd',0777,true); //递归创建
2.2删除文件夹(rmdir())
- //remove:移除
- rmdir('./aa/bb/cc/dd'); //删除dd文件夹
注意:
1、删除的文件夹必须是空的
2、PHP基于安全考虑,没有提供递归删除。
2.3重命名文件夹(rename(旧名字,新姓名))
rename('./aa','./aaa'); //将aa改为aaa
2.4是否是文件夹(is_dir())
echo is_dir('./aaa')?' 是文件夹':'不是文件夹';
2.5打开文件夹、读取文件夹、关闭文件夹
- $folder=opendir('./'); //打开目录
- //var_dump($folder); //resource(3) of type (stream)
- while($f=readdir($folder)){ //读取文件夹
- if($f=='.' || $f=='..')
- continue;
- echo iconv('gbk','utf-8',$f),'<br>'; //将gbk转成utf-8
- }
- closedir($folder); //关闭文件夹
小结:
1、opendir()返回资源类型
2、每个文件夹中都有.和..
3、iconv()用来做字符编码转换
出处:http://www.phpfensi.com/php/20220601/20913.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式