当前位置: 首页 > article >正文

从零开始学PHP之变量作用域数据类型

一、数据类型

上篇文章提到了数据类型,在PHP中支持以下几种类型

  1. String (字符串)
  2. Integer(整型)
  3. Float (浮点型)
  4. Boolean(布尔型)
  5. Array(数组)
  6. Object(对象)
  7. Null(空值)
  8. Resource(资源类型)

下面我们用PHP种var_dump打印数据来查看数据类型

1、String(字符串)

一个字符串和一串字符的序列,就像咱们的 ”hello word“。你可以讲任何文本放在单双引号中
代码片段

<!DOCTYPE html>
<html>
<body>
    <h1>变量创建</h1>
    <?php
        $txt="Hello world!";
        var_dump($txt);
    ?>
</body>
</html>

在这里插入图片描述
效果
在这里插入图片描述

2、Integer(整型)

整形规则
  1. 整数必须包含一个数字0-9
  2. 整数不能包含空格或者特殊符号
  3. 整数中不能包含小数点
  4. 整数可以正数或者负数
  5. 整形可以用三种格式来指定:十进制,十六进制(以0x为前缀)或八进制(前缀为0)

代码片段

<!DOCTYPE html>
<html>
<body>
    <h1>变量类型</h1>
    <?php
    $float_a = 5985;
    var_dump($float_a);
    echo "<br>";
    $float_b = -345; // 负数
    var_dump($float_b);
    echo "<br>";
    $float_c = 0x8C; // 十六进制数
    var_dump($float_c);
    echo "<br>";
    $float_d = 047; // 八进制数
    var_dump($float_d);
    ?>
</body>
</html>

在这里插入图片描述
效果
在这里插入图片描述

3、Float(浮点型)

浮点数是带小数部分的数字,或是指数形式。
代码片段

<!DOCTYPE html>
<html>
    <body>
        <h1>变量类型</h1>
        <?php
        $x = 10.365;
        var_dump($x);
        echo "<br>";
        $x = 2.4e3;
        var_dump($x);
        echo "<br>";
        $x = 8E-5;
        var_dump($x);
        ?>
    </body>
</html>

在这里插入图片描述
效果
在这里插入图片描述

4、Boolean(布尔型)

布尔型一般用来判断,布尔型可以是 TRUE 或 FALSE。主要用于条件判断
在接下来的章节中你会学到更多关于条件控制的教程。

5、Array(数组)

数组可以在一个变量中存储多个值。可以有一维数组和多维数组,以下代码片段是创建一个数组并打印出类型

代码片段

<!DOCTYPE html>
<html>
    <body>
        <h1>变量类型</h1>
        <?php
        //基本数组定义 设置key值
        $array=array('key'=>'value');
        //例如
        $array1=array("name"=>'张三',''=>"BMW","Toyota");
        //或不设置key值,默认数组下标 从0开始
        $array2=array("value");
        //例如
        var_dump($array1);
        var_dump($array2);
        ?>
    </body>
</html>

在这里插入图片描述

效果
在这里插入图片描述
array(1)代表这个数组中有1个元素

6、Object(对象)

这个后期讲到面向对象的时候会讲到此处不作解释

7、Null(空值)

NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。
NULL 值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别。

8、Resource(资源类型)

PHP 资源 resource 是一种特殊变量,保存了到外部资源的一个引用。
常见资源数据类型有打开文件、数据库连接、图形画布区域等。
由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此将其它类型的值转换为资源没有意义。
这个时候就不能用var_dump来打印了,可以使用 get_resource_type() 函数可以返回资源(resource)类型:
此函数返回一个字符串,用于表示传递给它的 resource 的类型。如果参数不是合法的 resource,将产生错误。
这个部分等到讲到php链接数据库的时候讲到

二、变量作用域

变量的作用域是脚本种变量可能被引用/使用的部分
PHP有四种不同的变量作用域:

  1. Local
  2. Global
  3. Static
  4. Parameter

1、局部和全局作用域

这个时候就会引入php种函数的概念,在函数外部定义的变量拥有全局作用域,就相当于公园里的座椅是公用的,谁都可以坐,所以全局变量可以被所有函数引用/使用
在函数内定义的变量为局部变量,函数相当于你的家,局部变量相当于你家的座椅,只能在你家里坐,所以局部变量只能被当前函数引用/使用

2、关键字

1、global

global 关键字用于函数内访问全局变量,相当于你在家里想坐公园的座椅,但是你家里没有,你可以让global去公园里照着公园的座椅仿制一个搬到你家里来,这样就达到了你能在家里坐到公园里的椅子

不使用global
代码示例

<!DOCTYPE html>
<html>
    <body>
        <h1>变量作用域</h1>
        <?php
        $x=5;
        $y=10;
        function myTest()
        {
            $x,$y;
            $y=$x+$y;
        }
        myTest();
        echo $y; // 输出 15
        ?>
    </body>
</html>

这个时候编辑器提示报错
在这里插入图片描述
效果
在这里插入图片描述

Parse error: syntax error, unexpected token "," in G:\phpstudy_pro\WWW\www.helloword.com\index.php on line 10
翻译:解析错误:语法错误,G:\phpstudy-pro_WWW\WWW.helloword.com\index.php第10行出现意外标记“,”

使用global
代码示例

<!DOCTYPE html>
<html>
    <body>
        <h1>变量作用域</h1>
        <?php
        $x=5;
        $y=10;

        function myTest()
        {
            global $x,$y;
            $y=$x+$y;
        }

        myTest();
        echo $y; // 输出 15
        ?>
    </body>
</html>

编辑器不提示报错
在这里插入图片描述
效果
正常输出数据
在这里插入图片描述

2、Static

当一个函数完成时,它的所有变量通常都会被删除。但是有的时候你希望保留某个局部变量不要被删除所以就用到了static关键字
不使用 static关键字
代码示例

<!DOCTYPE html>
<html>
    <body>
        <h1>变量作用域</h1>
        <?php
        function myTest()
        {
            $x=0;
            echo $x;
            $x++;
            echo PHP_EOL;    // 换行符
        }

        myTest();
        myTest();
        myTest();
        ?>
    </body>
</html>

调用三次
在这里插入图片描述
效果
输出 000在这里插入图片描述
使用static
代码示例

<!DOCTYPE html>
<html>
    <body>
        <h1>变量作用域</h1>
        <?php
        function myTest()
        {
            static $x=0;
            echo $x;
            $x++;
            echo PHP_EOL;    // 换行符
        }

        myTest();
        myTest();
        myTest();
        ?>
    </body>
</html>

调用三次
在这里插入图片描述
效果
输出123
在这里插入图片描述

3、Parameter(参数作用域)

参数是通过调用代码将值传递给函数的局部变量。参数是在参数列表中声明的,作为函数声明的一部分
参数作用域就相当于你告诉你的朋友 ,今天来我家吃饭,你想吃啥可以带点食材来我来加工成你想吃的菜
你家(函数)
参数(食材)
成品(结果)

代码示例
这段代码的意思就是 你朋友带鱼来,你就可以做糖醋鱼

<!DOCTYPE html>
<html>
    <body>
        <h1>变量作用域</h1>
        <?php
        function myTest($parameter)
        {
           if($parameter=='鱼'){
               echo "糖醋鱼";
           }
        }
        myTest('鱼');
        ?>
    </body>
</html>

在这里插入图片描述
效果
在这里插入图片描述

预告

下期讲函数


http://www.kler.cn/news/360467.html

相关文章:

  • 天锐绿盾 vs Ping32:企业级加密软件大比拼
  • 分布式---CAPBASE理论
  • 基于深度学习的设备异常检测与预测性维护
  • 你知道吗?这个岗位只招2人,但HR那边却收到了1w份简历
  • Spring Boot技术栈的电影评论网站设计与实现
  • 力扣困难题汇总(14道)
  • MySQL-16.DQL-分页查询
  • .net framework 3.5sp1安装错误怎样解决?
  • 基于python的《C语言程序设计》课程成绩分析
  • JSON 注入攻击 API
  • 【Linux】进程优先级进程切换
  • 【信息安全服务】常见服务高危端口排查(含内网)
  • Spring AOP 详解
  • 零售升级新引擎!云里物里电子价签助力连锁便利店提质增效
  • Linux基本使用和程序部署
  • 国际风能大会:8K风机叶片在线监测更高效
  • 2020前端面试 - JavaScript2.0篇
  • 递归之吃桃问题
  • 【MySQL】增删改查-进阶(二)
  • Unity 山水树木