PHP基础-(变量,常量,表达式)

变量-常量-表达式

 

 

变量

初始化变量

PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。

变量名与 PHP 中其它的标签一样遵循相同的规则。一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。按照正常的正则表达式,它将被表述为:'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'。

 

 

引用变量

PHP 也提供了另外一种方式给变量赋值:引用赋值。这意味着新的变量简单的引用(换言之,“成为其别名” 或者 “指向”)了原始变量。改动新的变量将影响到原始变量,反之亦然。


<?php$foo = 'Bob';              // 将 'Bob' 赋给 $foo$bar = &$foo;              // 通过 $bar 引用 $foo$bar = "My name is $bar";  // 修改 $bar 变量echo $bar;echo $foo;                 // $foo 的值也被修改?>


 

变量范围

大部分的 PHP 变量只有一个单独的范围。这个单独的范围跨度同样包含了 include 和 require 引入的文件。

 

 

global 超全局标量类似于$_SERVER

在函数中声明了全局变量 $a 和 $b 之后,对任一变量的所有引用都会指向其全局版本。对于一个函数能够声明的全局变量的最大个数,PHP 没有限制。

 

static 静态变量

变量范围的另一个重要特性是静态变量(static variable)。静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。


<?phpfunction test(){    static $a = 0;    echo $a;    $a++;}?>


//变量 $a 仅在第一次调用 test() 函数时被初始化,之后每次调用 test() 函数都会输出 $a 的值并加一。

静态变量也提供了一种处理递归函数的方法。递归函数是一种调用自己的函数。写递归函数时要小心,因为可能会无穷递归下去。必须确保有充分的方法来中止递归。

 

可变变量

就是说,一个变量的变量名可以动态的设置和使用。一个普通的变量通过声明来设置


<?php$a = 'hello';$$a = 'world';//$a 的内容是“hello”并且 $hello 的内容是“world”。//echo "$a ${$a}";  = echo "$a $hello";?>


 

 

 

超全局变量

$GLOBALS — 引用全局作用域中可用的全部变量

 

$_SERVER

一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。这也就意味着大量的此类变量都会在» CGI 1.1 规范中说明,所以应该仔细研究一下。


echo $_SERVER['SERVER_NAME'];          // localhostecho $_SERVER['HTTP_HOST'];            // localhostecho $_SERVER['PHP_SELF'];         // /PHPDemo/demo.phpecho $_SERVER['SCRIPT_NAME'];          // /PHPDemo/demo.phpecho $_SERVER['HTTP_REFERER'];         // http://localhost/PHPDemo/echo $_SERVER['HTTP_USER_AGENT'];      // Mozilla/5.0 (Windows NT 10.0; Win64; x64)  AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36



$_SERVER['REMOTE_ADDR']  浏览当前页面的用户的 IP 地址$_SERVER['REMOTE_HOST']  浏览当前页面的用户的主机名$_SERVER['REMOTE_PORT']  用户机器上连接到 Web 服务器所使用的端口号$_SERVER['SERVER_ADDR']	 当前运行脚本所在的服务器的 IP 地址    $_SERVER['SERVER_NAME']	 当前运行脚本所在的服务器的主机名$_SERVER['SERVER_PORT']	 当前运行脚本所在的服务器的端口号$_SERVER['REQUERT_METHOD']  访问页面使用的请求方法$_SERVER['REQUERT_TIME']  请求开始时的时间戳$_SERVER['REQUEST_URI']  URI 用来指定要访问的页面$_SERVER['QUERY_STRING'] query string(查询字符串),如果有的话,通过它进行页面访问。$_SERVER['SCRIPT_FILENAME']  当前执行脚本的绝对路径。$_SERVER['HTTP_HOST']  当前访问页面的域名//当前访问页面的地址 $_SERVER['HTTP_HOST']. $_SERVER['REQUEST_URI'] 



 

$_GET

PHP $_GET 广泛用于收集提交 method=”get” 的 HTML 表单后的表单数据。

 

$_POST

PHP $_POST 广泛用于收集提交 method=”post” 的 HTML 表单后的表单数据。

 

$_FILES

存储各种与上传文件有关的信息


<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">    <input type="file" name="myFile" value="" placeholder="">    <input type="submit" name="" value="提交"></form><?phpecho $_FILES["myFile"]["name"] . "<br>";       // 头像.pngecho $_FILES["myFile"]["size"] . "<br>";       // 142344echo $_FILES["myFile"]["tmp_name"] . "<br>";               // D:\wamp64\tmp\phpFDC5.tmpecho $_FILES["myFile"]["type"] . "<br>";       // image/pngecho $_FILES['myFile']['error'] . "<br>";      // 0?>


 

$_COOKIE

将用户的会话数据存储在客户端浏览器


<?phpsetcookie('test', '', time() -1);ob_start(); // 打开输出控制缓冲print_r($_COOKIE);$content = ob_get_contents(); // 复制缓冲区内容到$content中$content = str_replace(" ", ' ', $content);ob_clean(); // 清空(擦掉)输出缓冲区header("content-type:text/html; charset=utf-8");echo '当前的Cookie为:<br>';echo nl2br($content); // nl2br 在字符串所有新行之前插入 HTML 换行标记 <br>?>


 

$_SESSION

将用户的会话数据存储在服务端


<?phpsession_start(); // 创建一个 session$_SESSION['sessionName'] = 'sessionValue'; echo "session_id:" . session_id() . "<br>"; // 显示当前的session_idecho $_SESSION['sessionName']; // 读取 session 的值 unset($_SESSION['sessionName']); //销毁一个sessionvar_dump($_SESSION);?>


 

$_REQUEST 用于收集 HTML 表单提交的数据。 method=”GET” 和 method=”POST” 都适应

 

$_ENV

PHP中的$_ENV是一个包含服务器端环境变量的数组。

 

 

 

常量

可以用 define() 函数来定义常量

常量名和其它任何 PHP 标签遵循同样的命名规则。合法的常量名以字母或下划线开始,后面跟着任何字母,数字或下划线。用正则表达式是这样表达的:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*。

define("CONSTANT", "Hello world.");

 

魔术常量

PHP 向它运行的任何脚本提供了大量的预定义常量。不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。

__LINE__ 文件中的当前行号。

__FILE__ 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。

__DIR__ 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增) =

__FUNCTION__ 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。

__CLASS__ 类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar)。注意自 PHP 5.4 起 __CLASS__ 对 trait 也起作用。当用在 trait 方法中时,__CLASS__ 是调用 trait 方法的类的名字。

__TRAIT__ Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定义时的名字(区分大小写)。Trait 名包括其被声明的作用区域(例如 Foo\Bar)。

__METHOD__ 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。

__NAMESPACE__ 当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。

 

 

表达式

最基本的表达式形式是常量和变量

因为赋值操作的顺序是由右到左的,也可以这么写“$b = $a =5”。

HP 和多数其它语言的用户应该比较熟悉变量 ++ 和变量 -- 符号写做“++$variable”,求增加后的值(PHP 在读取变量的值之前,增加变量的值,因而称之为“前递增”)。后递增,写做“$variable++”,求变量未递增之前的原始值(PHP 在读取变量的值之后,增加变量的值,因而叫做“后递增”)。

 

一个常用到表达式类型是比较表达式。这些表达式求值 FALSE 或 TRUE。支持 >(大于),>=(大于等于),==(等于),!=(不等于),<(小于),<= (小于等于)。PHP 还支持全等运算符 ===(值和类型均相同)和非全等运算符 !==(值或者类型不同)。这些表达式都是在条件判断语句,比如,if 语句中最常用的。

 

三元条件运算符$first ? $second : $third

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值