PHP基础(二)

1. PHP常量

1.1 define定义常量

define(name, value [,case_insensitive=false])

PHP常量利用define定义;常量名不需要带$符号。默认是大小写敏感的。并且常量一经创建就无法修改其值。

define('pi','3.14');
echo pi; // 3.14

1.2 常量作用域

常量在定义后,作用域默认是全局的。

define('name','zhaoyun');
echo name."<br>";
echo Name; // 默认大小写敏感,Name无法识别。

// 作用域:常量在定义后,默认是全局的。
function constant_test(){
    echo name;
    define('fun', 'test'); // 在函数内部定义的常量,作用域依然是全局的
    echo fun;
}
constant_test();
echo fun;

1.3 大小写不敏感设置

使用define定义常量默认大小写敏感,将最后一个参数设置为true则为不敏感。

define('name','zhaoyun', true);
echo name."<br>"; // zhaoyun
echo Name; // zhaoyun

2. PHP条件判断

PHP中条件判断有if语句和switch语句。语法和c语言大致相同。
记录一下格式用法:

$name = 'test';
if($name=='test'){
    echo $name;
}elseif($name=='tests'){
    echo $name;
}else{
    echo 'error';
}
$name = 'test';
switch($name){
    case 'test':
        echo "hello";
    	break;
    default: 
        echo "error";
}

3. 超级全局变量

PHP中定义了几个超级全局变量,除了$GLOBALS,前面都有一个下划线_

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

3.1 GLOBALS

用户自己在编写PHP脚本时所定义的全局变量都会存储在超级全局变量数组$GLOBALS中。在局部作用于访问全局变量的时候,可以通过$GLOBALS访问。

<?php
$name='zs';
$age=18;
$gender='man';
// echo $name;
function test(){
    echo $name; // 全局变量无法访问
    echo $GLOBALS['name'] . $GLOBALS['age'] . $GLOBALS['gender'];  // 通过$GLOBALS访问
}
test();
?>

3.2 $_SERVER

$_SERVER是一个存储了当前脚本路径,服务器相关信息,请求用户的信息等等数据的数组。

如下是结合菜鸟教程给出的表格测试得出的具体数据:

脚本路径:

元素代码描述
$_SERVER[‘PHP_SELF’]当前脚本的路径,从网站根目录开始 /test/super.php
$_SERVER[‘SCRIPT_NAME’]包含当前脚本的路径。/test/super.php
$_SERVER[‘SCRIPT_FILENAME’]当前脚本的绝对路径,从服务器的根开始F:/phpstudy/PHPTutorial/WWW/test/super.php

服务器信息:

元素代码描述
$_SERVER[‘SERVER_ADDR’]运行当前脚本的服务器的IP地址
$_SERVER[‘SERVER_NAME’]运行当前脚本的主机的主机名
$_SERVER[‘SERVER_SOFTWARE’]服务器标识,如apache
$_SERVER[‘SERVER_PROTOCOL’]请求页面所用的通讯协议及版本;HTTP/1.1
$_SERVER[‘SERVER_PORT’]web服务器使用的端口

用户信息:

元素代码描述
$_SERVER[‘REMOTE_ADDR’]获取请求用户的IP地址
$_SERVER[‘REMOTE_HOST’]用户的主机名
$_SERVER[‘REMOTE_PORT’]用户连接到服务器所使用的端口号

请求信息:

元素代码描述
$_SERVER[‘REQUEST_METHOD’]访问页面的请求方法
$_SERVER[‘REQUEST_TIME’]请求开始的时间戳
$_SERVER[‘QUERY_STRING’]查询字符串,url后面的?xx=xxx
$_SERVER[‘HTTP_ACCEPT’]获取请求头中的accept的内容
$_SERVER[‘HTTP_ACCEPT_CHARSET’]获取请求头中accept-charset的内容
$_SERVER[‘HTTP_HOST’]请求头中的host
$_SERVER[‘HTTP_REFERER’]请求头中的referer
$_SERVER[‘HTTPS’]如果脚本是通过https访问的,则被设置为一个非空的值

以下为教程中提到的,但是在本地测试无输出结果:

元素代码描述
$_SERVER[‘GATEWAF_INTERFACE’]服务器使用的 CGI 规范的版本;测试被忽略
$_SERVER[‘SERVER_ADMN’]该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数
$_SERVER[‘SERVER_SIGNATURE’]包含了服务器版本和虚拟主机名的字符串
$_SERVER[‘PATH_TRANSLATED’]当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。
$_SERVER[‘SCRIPT_URI’]URI 用来指定要访问的页面。例如 “/index.html”。

3.3 $_REQUEST

接收HTML表单提交的数据。method可以是GETPOST

<form method='GET' action="<?php echo $_SERVER['PHP_SELF']; ?>">
	Name: <input type="text" name="fname">
	<input type="submit">
</form>

<?php
	$name = $_REQUEST['fname'];
	echo "<h1>".$name;
?>

3.4 $_POST

接收HTML表单提交的数据,但是method要设置为POST。

<form method='POST' action="<?php echo $_SERVER['PHP_SELF']; ?>">
	Name: <input type="text" name="fname">
	<input type="submit">
</form>

<?php
	$name = $_REQUEST['fname'];
	echo "<h1>".$name;
?>

3.5 $_GET

  1. 接收从URL提交的参数。(?xx=xxx)
  2. 接收HTML表单提交的数据,method要设置为GET
<form method='GET' action="<?php echo $_SERVER['PHP_SELF']; ?>">
	Name: <input type="text" name="fname">
	<input type="submit">
</form>

 <?php
	$name = $_REQUEST['fname'];
	echo "<h1>".$name;
 ?>

4. PHP循环

PHP主要有如下循环:

  • while: 只要条件成立,则循环执行代码块
  • do…while:首先执行一次代码块,然后当条件成立时,重复执行这个代码块
  • for:指定循环次数
  • foreach:根据数组中每个元素来循环代码块

其中,while,do...while,for的用法和C语言基本相同。重点学习foreach


4.1 while

语法:

while(条件){
代码;
}

4.2 do…while

语法:

do{
代码;
}
while(条件);

4.3 for

语法:

for(初始值;条件;增量){
代码;
}

4.4 foreach

foreach循环用于遍历数组。
语法

foreach($array as $value){
代码;
}

每次执行循环的时候,会将数组$array的一个元素赋值给$value;同时指针后移。

遍历数值数组:

<?php
    $colors = array("red", "yellow", "blue");
    foreach($colors as $color){
        echo $color."<br>";
    }
?>
/*red
yellow
blue*/

遍历关联数组:

$students = array(1=>'zhangsan',2=>'lisi',3=>'wangwu');
foreach($students as $number=>$name){
    echo "number: ".$number."; name: ".$name."<br>";
}
/*number: 1; name: zhangsan
number: 2; name: lisi
number: 3; name: wangwu*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值