zoukankan      html  css  js  c++  java
  • 自学PHP笔记(四) PHP变量和常量

    本文转发来自:https://blog.csdn.net/KH_FC/article/details/115568310

    PHP中变量有普通变量、可变变量和预定义变量,而常量就是普通变量和预定义变量。

    1. 变量

    在PHP中变量是内存中得一个命名单元,在系统中为程序中每个变量都分配一个存储单元,在这些存储单元中可以存储任何数据类型得数据。
    在PHP中不需要先声明变量后使用变量,只需要给变量赋值即可,但是PHP变量名称必须使用$字符做为前缀,变量名区分大写小写。
    示例】为变量赋值

    <?php
    	$num = 3.1415926212;
    ?>
    

    在进行赋值时只需要使用运算符=即可,在运算符等号左侧为变量名称右侧为变量值。

    1.1 变量之间互相赋值

    示例

    <?php
    	$num1 = 123;
    	$num2 = $num1;
    	echo $num2;
    ?>
    

    输出结果为:123,在变量之间进行赋值时,只进行传递变量值,变量在存储单元中都是各自独立的,也就是说当输出$num1变量时也是可以输出的,不会输出空

    1.2 引用赋值

    引用赋值的意思就是将变量A与变量B做一个链接,当变量A值发生改变,变量B的值也随之进行改变。
    示例

    <?php
    	$a = 'test';
    	$b = &$a;
    	$a = 'test1';
    	echo $b;
    ?>
    

    输出结果为:test1
    引用方法也比较简单,就是在进行赋值变量前面加上&符号即可。

    取消引用
    如果不想让变量引用赋值了,我们可以使用unset()函数取消变量引用,这个函数是将变量A和变量B之间的引用关系断开,并不是将变量进行销毁。
    示例

    <?php
    	$a = 'test';
    	$b = &$a;
    	echo $b;	#输出结果为1
    	unset($b);
    	echo $b;	#输出结果为空
    ?>
    

    2. 可变变量

    可变变量也就是一个可以动态变化的变量名,是一种特殊的变量,这个变量名是由应一个变量的值来进行定义的,也就是变量的名字取决于另一个变量的值。
    示例

    <?php
    	$a = 'test';
    	$test = 'hello word !';
    	echo $$a; 
    ?>
    

    输出结果为:hello word !
    定义这样的变量只需要在变量前面加上$符号即可
    高级用法

    <?php
    	$a = 'hello';
    	$$a = 'word';
    	echo $a.$$a;
    	echo '<br>';
    	echo $hello;
    ?>
    

    输出结果为:

    helloword
    word
    

    3. 预定义变量

    在PHP中提供了大量的预定义变量,通过这些变量可以获取用户会话、用户操作环境和本地操作系统等信息,由于大部分变量依赖于服务器的版本和设置,以及其他因素,所以一些预定义变量在PHP中以命令行形式运行时并不生效,下面我列举了一些预定义变量:

    预定义变量 说明
    $GLOBALS 调用全局作用域中的全部变量
    $_SERVER 显示服务器及环境信息
    $_GET 提交GET变量
    $_POST 提交POST变量
    $_FILES 提交文件上传变量
    $_REQUEST 提交Request变量
    $_SESSION Session变量
    $_ENV 环境变量
    $_COOKIE Cookies变量
    $php_errormsg 前一个错误信息
    $HTTP_RAW_POST_DATA 原生POST数据
    $http_response_header HTTP响应头
    $argc 传递给脚本的参数数目
    $argv 传递给脚本的参数数组

    示例】输出环境信息

    <?php
    	var_dump($_SERVER);
    ?>
    

    输出结果如图所示:
    在这里插入图片描述
    这里因为我的环境有中文字符所以输出结果时会出现乱码,后续大家可以定义一下字符编码就不会存在乱码了。

    4. 常量

    4.1 声明常量

    常量其实就是字面意思,也就是说这个变量是一成不变的,除非取消这个定义。
    在定义常量时遵循PHP变量的相同命名规则,由英文字母、下划线和数字组成,但数字不能作为首字母出现。

    4.1.1 使用define()函数声明常量

    语法】使用define()声明常量语法

    	define($name , $value [ $case_insensitive = true ]);
    

    参数说明:
    $name:表示常量名称
    $value:表示常量的值
    $case_insensitive:表示设置常量是否区分大小写,值为true则不区分大小写,为false则区分大小写
    注意:这里需要注意常量值只能是integer、float、string、boolean、NULL或array
    声明变量只返回布尔值,true 为声明成功,false 为声明失败。
    示例】声明常量

    <?php
    	if (define("test","hello word")){
    		echo "声明变量成功";
    	}else{
    		echo "声明变量失败";
    	}
    ?>
    

    输出结果为:声明变量成功
    常量与变量对比

    1. 常量不需要使用$符号进行定义
    2. 常量只能使用函数进行定义,不能使用赋值符=进行赋值
    3. 常量不需要考虑作用域,可以在任意地方进行定义和使用
    4. 常量一旦被定义就无法进行修改,只能进行取消定义
    5. 常量的值只能是标量
    4.1.2 const关键字

    使用过const关键字定义常量只能用在最顶端的作用域,此方法是在编译时定义的,不能用在函数内、循环内或者判断语句内进行使用。
    示例

    <?php
    	const test = "hello word";
    ?>
    

    是用const关键字定义常量是比较简单的,只需要在定义赋值前加上关键字即可

    4.2 使用常量

    获取变量值也是比较简单的可以采用变量名的方式获取或者是使用constant()函数进行获取,这两种方式输出的值是一样的,只不过使用函数获取动态常量时更方便。
    示例

    <?php
    	define("hello","word");
    	echo hello;
    	echo constant("hello");
    ?>
    

    输出结果为:两个word
    注意:使用函数输出常量值时,输出正确可正常输出,但是输出错误会出现报错

    4.3 预定义常量

    PHP中提供了大量的预定义常量,不过大多数预定义常量都是由不同的扩展库进行定义的,只有加载了这些扩展库才能使用这些预定义常量,这里要注意有些预定义常量会根据不同的位置会有不同的改变,比如_FLNE_的值就是依赖于他所在的位置来决定。下面总结了一些常用的预定义常量:

    预定义常量 说明
    PHP_VERSION 获取PHP版本
    PHP_OS 获取操作系统信息
    PHP_API 获取WEB与PHP的接口信息
    PHP_INT_MAX 获取最大整数
    PHP_BINDIR 获取执行路径
    _FILE_ 获取当前文件名
    _LINE_ 获取当前行数
    DEFAULT_INCLUDE_PATH 获取PHP默认路径
    PEAR_INSTALL_DIR 获取PHP安装路径
    PEAR_EXTENSION_DIR 获取PHP扩展路径
    PHP_LIBDIR 获取PHP模块扩展路径
    _DIR_ 获取当前文件路径
    _FUNCTION_ 获取函数名
    M_PI 获取圆周率
    _MHTHOD_ 获取当前成员
    _NAMESPALE_ 获取命名空间
    _CLASS_ 获取类名
  • 相关阅读:

    IT人的素质 & 设计杂谈
    结构化思维思维的结构
    [WM].NET CF下如何提高应用程序的性能 【转载】
    无题
    [WM]谁抢走了应用程序的性能? 【转载】
    繁体编码文本文件转换为简体编码的工具
    生成VB多行字符串常量的工具
    跟我一步一步开发自己的Openfire插件
    cnblogs博文浏览[推荐、Top、评论、关注、收藏]利器代码片段
  • 原文地址:https://www.cnblogs.com/blxt/p/14640631.html
Copyright © 2011-2022 走看看