• 2018-1-22 PHP 变量和常量


       今天开始学习PHP的有关内容,主要学习了变量这一块。

      php基本环境:

    1.运行环境:保证能够运行php

          测试:echo"abc";

          保证时区设置正确:

          测试:echo date("Y-m-d H:i:s");

          保证模块设置正确:

          测试:mysql_connect("localhost",'root','123');

    2、语法环境:php嵌入到html中有多种形式。

      ①标准形式:<?php

              ......php代码

            ?>

      ②标准形式:<script language="php">

                    ......php代码

            </script>

    当一个php文件中的php代码部分的后面不再有其他非php代码(通常就是html),则此时php代码区的最后的结束标记可以省略。

    3、基本语法形式:

    ①区分大小写:主要指变量名区分大小写。

          常量可区分可不区分(不区分大小写的情况不推荐)

          函数名不区分大小写

          系统使用的关键字不区分大小写:if,else,for

    ②语句结束符,用分号:php标记块中的最后一个分号可省略

                php结束标记省略那么不能省略最后一个分号

                (建议不省略)

    变量:

    形式:变量必须以$开头,后面紧跟变量名。

    注意:通常,在“能够出现”变量的语法中,只要出现$符号,并在其后出现紧挨着的字符,就会被识别为一个变量,即使不存在该变量,比如:

    echo  “人民币符合¥像个羊,美元符号$象个钱”;        这里就会有问题!

    变量的基本使用:

    定义变量(赋值):直接给变量复制,就是定义;    (定义变量必须赋值)

    取值:

    所有需要一个变量值的语句中,就会取得该变量的值,常见包括:

    输出:echi $v1;   (取得$v1的值,并输出)

    给其他变量赋值$v2 = $v1;   (取得$v1的值,并赋值给$v2)

    参与运算:$v3 = $v1 + 3;   (取得$v1的值,并跟3相加)

    判断变量是否存在isset()

    存在,返回true,不存在返回false  (如果一个变量的值是null,返回的也是false)

    修改变量值(赋值):第二次及以后给一个变量赋值,就算修改变量值。

    删除unset():就是断开变量名跟数据之间的“引用关系”。

    变量命名的基本规则:

    只能使用大小写字母,下划线(_),数字

    数字不能开头

    不能跟所在环境(系统)的关键字重名(比如ifforfunction.....)

    变量命名的行业规则中有几种常用的命名规则:

    1,驼峰命名法:  示例:name,  myNamemyFatherName

    2,帕斯卡命名法:  示例:Name,  MyNameMyFatherName

    3,下划线间隔法:  示例:name,  my_amemy_father_name

    变量间传值:

    变量间的传值方式是指一个变量对另一个变量而言。

    传值方式:值传递,引用传递  (php中,所有变量都是默认值传递

    要想使用引用传递,必须使用引用传递的专用符号:&

    值传递:是指将一个变量的数据值(数据内容)拷贝一份,然后赋值给另一个变量。

    两个变量相互独立,互不影响。

    $v1=1;

    $v2=$v1;   此时发生传递

    $v3=$v1+10;  此时没有传值

    $v2++;

    echo "<br /v1=$v1,v2=$v2"

    此时输出结果为v1=1,v2=2

    引用传值:是指将一个变量的引用关系拷贝一份,然后赋值给另一个变量,即另一个变量也同样由该关系决定了指向某个数据:

    赋值(传值)完之后,两个变量指向同样一个数据。

    对变量v1的操作,改变的数据,也就是体现为v2也发生了改变。

    $v1=10;

    $v2=&$v1;  此时发生传值,传值符号:&

    $v2++;

    echo "<br />v1=$v1,v2=$v2";

    输出结果为v1=11,v2=11

    此时,unset一个变量,则另一个跟它有关(指向同样数据的关系)的变量,并不受影响。

    unset是指删除一个变量

    unset($v2)

    echo "<br />v1=$v1,v2=$v2";

    结果:

    Notice:Undefined variable:v2 in  路径;

    v10=11,v2=      

    可变变量:是指一个变量的名,又是一个变量。

    可变变量的语法是php的很特殊的语法——其他语言中少见。

    $v1 = “abc”;   (这是一个字符串变量,其内容是字符串“abc”)

    $abc = 10;   (这是一个普通变量,其内容是数字10)

    echo  $$v1;   (此时,就是所谓“可变变量”)

    预定义变量:

    ①又称超全局变量。

    $_GET, $_POST, $_SERVER, $_REQUEST, $GLOBALS,  $_COOKIE, $_SESSION, .........

    ②作用域(变量定义的大括号内)

    php中,自定义的变量的作用域,分两种:全局作用域(函数外),局部作用域(函数内)。但是

    预定义变量的作用域称为“超全局作用域”:全局作用域 + 局部作用域的总和(函数内外全都可用)

    超全局变量都是数组!

    $_GET变量(数组):

    <form  action=”abc.php”  method=”get” >.....</form>  (表单以get方式提交数据

    $_GET这个预定义数组变量,就是指以这种方式提交的所有数据的集合(数组)

    Get表单提交到后台以键值对形式存在,php字符串拼接用“.

    也可以以post(不显示,比较安全)方式提交数据,get(显示)这个词,没有中文翻译。

    常量:

    含义:用于存储一个不会变化也不希望变化的数据的标示符。

    常量命名规则,同变量,但习惯说,常常将常量的名称使用“全大写”形式。

    ①使用define()函数定义

    使用形式:define(“常量名”, 常量值)

    推荐常用名使用全大写形式

    例:define("CONST1",1);

    define("_C2","ABC");  不推荐

    define("pi",3.14);

    ②使用const语法定义:

    使用形式: const  常量名 = 常量值;

    const语法只能在“最顶层”的代码域中使用(不能在大括号中)

    也即,const语法不能在函数中或条件语句中或其他表示一个“范围”的语句中使用。

    const C1=11;  (这里是顶层代码,可以使用const)

    if(C1>10){  (使用常量,进行判断)

      const C2=12;  (此处语法错误)

    }

    使用常量:

    ①直接使用名字  ②使用constant()函数:constant(“常量名”)

    常量变量的区别:

    定义形式不同:

    使用形式不同:常量无需$符号

    可变程度不同:常量的值不可以改变,常量也不可以销毁

    作用范围不同:常量具有超全局作用域 (函数内外都可以直接使用)

    可用类型不同:常量只能存储标量类型int,float,string,bool

    判断常量是否存在:defined()

    判断结果为布尔值。

    常用形式:if ( defined (某常量名) == false ){ .....这里可以去定义该常量;}

    实际上,可以这样:

    $result = defined (某常量名);   (结果是truefalse)

    预定义常量:

      php语言中,预定了大量的常量,可以直接使用。其中有些常量,是需要某些模块打开之后才有(比如mysql模块)

    魔术常量:

      魔术常量其实是一种值会随着一定的条件(环境)而变化的常量,形式和使用上是常量,但实际上,其值会改变。

  • 相关阅读:
    docker搭建lnmp环境
    通过brew安装docker以及docker的使用
    源码编译安装扩展-phpize详解
    php7废弃mcrypt加密,使用openssl替换
    ubuntu安装docker
    mac 操作系统使用iterm(2)自动登录远程服务器
    linux 用户及用户组管理
    let var const 区别
    ubuntu 升级node和npm 版本
    OLTP与OLAP
  • 原文地址:https://www.cnblogs.com/dns6/p/8330292.html
Copyright © 2020-2023  润新知