1.作用域

     1.1变量作用域

     1.全局变量:在函数外面

      2.局部变量:在函数里面,默认情况下,函数内部是不会访问函数外部的变量

      3.超全局变量:可以在函数内部和函数外部访问

      在函数内部访问全局变量

  1. <?php
  2. $num=10; //全局变量
  3. function fun() {
  4. echo $GLOBALS['num']; //输出全局的$num
  5. }
  6. fun();

 global关键字

  1. <?php
  2. $num=10;
  3. function fun() {
  4. global $num; //将全局变量的$num的地址引入到函数内部 相当于$num=&GLOBALS['num']
  5. echo $num; //
  6. $num=100;
  7. }
  8. fun();
  9. echo '<br>';
  10. echo $num; //

小结:

    1.$GLOBALS保存的是全局变量的所有的值

         2.global用于创建一个全局变量的引用

         3.常量是没有作用域的概念

         1.2静态变量(static)

         静态变量一般指的是静态局部变量

         静态变量只初始化一次

  1. <?php
  2. function fun() {
  3. static $num=10; //静态变量只初始化一次,调用完毕吧不销毁,第二次调用的时候就不再初始化
  4. $num++;
  5. echo $num,'<br>';
  6. }
  7. fun(); //
  8. fun(); //

常量和静态变量的区别:

          1.常量和静态变量都是初始化一次

           2.常量不能改变值,静态变量可以改变值

           3.常量没有作用域,静态变量有作用域

           1.3匿名函数use()

          默认情况下,函数内部不能访问函数外部的变量,但在匿名函数中,可以通过use将外部变量引入匿名函数中

  1. <?php
  2. $num=10;
  3. $fun=function() use($num) { //将$num引入到匿名函数中,引用多个变量时用逗号分隔开
  4. echo $num;
  5. };
  6. $fun(); //

2.文件夹操作:

           2.1创建文件夹(mkdir(路径,权限,是否递归创建))

  1. <?php
  2. //1、创建目录
  3. //mkdir('./aa'); //创建aa文件夹
  4. //mkdir('./aa/bb'); //在aa目录下创建bb(aa目录必须存在)
  5. mkdir('./aa/bb/cc/dd',0777,true); //递归创建

 2.2删除文件夹(rmdir())

  1. //remove:移除
  2.  
  3. rmdir('./aa/bb/cc/dd'); //删除dd文件夹

   注意:

              1、删除的文件夹必须是空的

              2、PHP基于安全考虑,没有提供递归删除。

              2.3重命名文件夹(rename(旧名字,新姓名))

  1. rename('./aa','./aaa'); //将aa改为aaa

    2.4是否是文件夹(is_dir())

  1. echo is_dir('./aaa')?' 是文件夹':'不是文件夹';

   2.5打开文件夹、读取文件夹、关闭文件夹

  1. $folder=opendir('./'); //打开目录
  2. //var_dump($folder); //resource(3) of type (stream)
  3. while($f=readdir($folder)){ //读取文件夹
  4. if($f=='.' || $f=='..')
  5. continue;
  6. echo iconv('gbk','utf-8',$f),'<br>'; //将gbk转成utf-8
  7. }
  8. closedir($folder); //关闭文件夹

 小结:

                1、opendir()返回资源类型
                2、每个文件夹中都有.和..
                3、iconv()用来做字符编码转换

PHP作用域和文件夹操作的更多相关文章

  1. [No000083]文件与文件夹操作

    #region Folder option 文件夹操作 /// <summary> /// 指定目录是否存在 /// </summary> /// <param name ...

  2. PHP 文件夹操作「复制、删除、查看大小」递归实现

    PHP虽然提供了 filesize.copy.unlink 等文件操作的函数,但是没有提供 dirsize.copydir.rmdirs 等文件夹操作的函数(rmdir也只能删除空目录).所以只能手动 ...

  3. .Net文件*夹*操作

    一.文件夹操作 Directory类,DirectoryInfo类.使用using System.IO命名空间 (一)创建文件夹 方法一: private string path = @"F ...

  4. iOS开发——Swift篇&文件,文件夹操作

    文件,文件夹操作   ios开发经常会遇到读文件,写文件等,对文件和文件夹的操作,这时就可以使用NSFileManager,NSFileHandle等类来实现. 下面总结了各种常用的操作:   1,遍 ...

  5. Python的文件与文件夹操作

    Python的文件与文件夹操作 Python OS模块 1.重命名:os.rename(old, new) 2.删除:os.remove(file) 3.列出目录下的文件 :os.listdir(pa ...

  6. linux —— 学习笔记(文件、文件夹操作)

    目录:1.常用的文件文件夹操作 2.文件属性的设置 1.常用的文件文件夹操作 mkdir  创建文件夹 -p 如果指定 a/b/c 时 a .b 不存在,一起创建出来 cp       复制文件或文件 ...

  7. c# 封装的文件夹操作类之复制文件夹

    c#  封装的文件夹操作类之复制文件夹 一.复制文件夹原理: 1.递归遍历文件夹 2.复制文件 二.FolderHelper.cs /// <summary> /// 文件夹操作类 /// ...

  8. Python_文件与文件夹操作

    ''' os模块除了提供使用操作系统功能和访问文件系统的简便方法之外,还提供了大量文件与文件夹操作的方法. os.path模块提供了大量用于路径判断.切分.连接以及文件夹遍历的方法. shutil模块 ...

  9. 文件及文件夹操作- File类、Directory 类、FileInfo 类、DirectoryInfo 类

    文件及文件夹操作: C/S:WinForm可以操作客户端文件 Client ServerB/S:Brower Server 命名空间:using system .IO; 1. File类: 创建:Fi ...

随机推荐

  1. jQuery-跨域问题的处理

    调用登录接口时,后端一般会在调用登录接口成功后,在response中设置cookie,之后前端的每次请求都会自动地在请求头上加上后端设置好的cookie,这对前端来说是透明的. 当登录接口与登录后调用 ...

  2. 使用VBA从工作表中读图片,以及给工作表中写文件

    因为工作的原因,需要用到VBA,碰到读图片和写图片: Sub Macro01() '从工作表中保存图片 Application.ScreenUpdating = False Dim pth, shp, ...

  3. C++ 如何用百行代码实现线程安全的并发队列 | concurrent queue or blocking queue implemented in cpp

    本文首发于个人博客https://kezunlin.me/post/cabccf5c/,欢迎阅读最新内容! concurrent queue or blocking queue implemented ...

  4. go-爬段子

    爬取搞笑的段子,横向爬取+纵向爬取 横向爬取爬页数,纵向爬取,爬每页的内容 package main import ( "fmt" "io" "net ...

  5. Web前端基础(12):JavaScript(六)

    1. JS中的面向对象 创建对象的几种常用方法: 1.使用Object或对象字面量创建对象 2.工厂模式创建对象 3.构造函数模式创建对象 4.原型模式创建对象 1.1 使用Object或对象字面量创 ...

  6. SSH框架之Struts2第三篇

    1.3相关知识点 : 1.3.1 OGNL的表达式 : 1.3.1.1 什么是OGNL OGNL是Object-Graph Navigation Language的编写,它是一种功能强大的表达式语言, ...

  7. SpringBoot启动项目时提示:Error:(3, 32) java: 程序包org.springframework.boot不存在

    场景 在IDEA中新建SpringBoot项目,后启动项目时提示: Error:(3, 32) java: 程序包org.springframework.boot不存在 实现 将pom.xml中par ...

  8. SSM框架之Mybatis(7)延迟加载、缓存及注解

    Mybatis(7)延迟加载.缓存及注解 1.延迟加载 延迟加载: 就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据.延迟加载也称懒加载. **好处:**先从单表查询,需要时再从关联表去关 ...

  9. SQL实用技巧:如何将表中某一列的部分数据合并到一行中

    select *,stuff(select ‘,’ + fieldname from table1 for xml path(”)),1,1,”)  as  field from table2 for ...

  10. 调试Android Framework的Java部分代码

    DebugAndroidFramework 说明:调试Android Framework的Java部分代码,以调试源码android-28为例,需要一个API 28的模拟器配合使用. 一.下载源码 下 ...