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模块)

魔术常量:

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

原文地址:https://www.cnblogs.com/dns6/p/8330292.html