PHP基础(1)

0.预备

  •  PHP: 超文本预处理器
  •  PHP工作原理:
  •    A.客户端向服务器发送HTTP请求;
  •    B.服务器接收请求后,将请求转发给PHP引擎;
  •    C.PHP引擎接收并处理请求;
  •    D.PHP引擎将处理结果返回给服务器;
  •    E.服务器再将结果返回给客户端;
  •  Apache安装:下载(https://www.apachelounge.com/download/)后,cd进入Apache目录下的bin目录,运行httpd -k install即可注册Apache服务.卸载Apache服务:sc delete apache服务名。
  • PHP安装,Apache服务器应选择线程安全版本的PHP。
  • Apache服务器加载PHP模块(将PHP与Apache绑定在一起),在Apache配置文件httpd.conf中添加三个语句:第一句 LoadModule php7_module "php7apache2_4.dll文件的位置"(这个文件一般在php 的目录中添加)。第二句 PHPIniDir "PHP配置文件的目录" . 第三句 AddType application/x-httpd-php .php(告诉PHP引擎,哪些类型的文件将交给PHP引擎来处理)。
  • 修改过Apache的配置文件要重新启动Apache服务。

1.关于变量

//1.变量均以$符开头,只能由字母、数字、下划线组成,且数字不能开头。

//2.echo与var_dump()均为输出函数,布尔型的echo输出为0或者1,var_dump()输出的为变量的完整信//息。

//3.isset()用来判断变量是否被赋值。unset()为销毁变量。
$v1 = null;
var_dump(isset($vl));//此处输出bool(false)

2.变量的值传递(传的时候两个变量值一样,传完了就互不干扰,各自独立了)

$v1 = 10;
$v2 = $v1;//这叫传值
$v3 = $v1 + 1;//这不叫传值
echo $v1;//输出为10
$v2 = $v2 + 1;
echo $v2;//输出为为10
//$v1与$v2互不干扰

3.变量的引用传递(引用传递导致两个变量相互绑定,改变一个,另一个也跟着改变)

$v1 = 10;
$v2 = &$v1;//此为引用传值
echo $v2;//输出为10
$v1 = 11;
echo $v2;//输出为11
$v2 = 22;
echo $v1;//输出为22
//引用传递传递的为该内存块的地址,实质为两个变量指向同一块内存区域

4.预定义变量

//1.$_GET()变量:接受get方式提交的数据

//表单文件:
<form action="1.php" method="get">
    姓名:<input type="text" name="name">
    年龄:<input type="text" name="age">
    <input type="submit" value="提交">
</form>

//1.php:
<?php
    $name = $_GET["name"];
    $age = $_GET["age"];
?>

//2.$_POST()变量:接受浏览器以post方式提交的变量

//表单文件:
<form action="1.php" method="post">
    姓名:<input type="text" name="name">
    年龄:<input type="text" name="age">
    <input type="submit" value="提交">
</form>

//1.php:
<?php
    $name = $_POST["name"];
    $age = $_POST["age"];
?>


//action留空代表提交给自己


//3.$_REQUEST()变量:$_GET()变量与$_POST()变量的合体,既可以接受get也可以接收post
//如何让一个表单既以POST方式提交又以GET方式提交?
//<form action="1.php?id=1&name=a" method="POST">
//此时id和name为get提交,其他为post提交
//不建议使用$_RQUEST()变量

//4.$_SERVER()变量:
//代表一次请求中,客户端或服务器的基本信息
$_SERVER['PHP_SELF'] //当前正在执行脚本的文件名,与 document root相关。
$_SERVER['argv'] //传递给该脚本的参数。
$_SERVER['argc'] //包含传递给程序的命令行参数的个数(如果运行在命令行模式)。
$_SERVER['GATEWAY_INTERFACE'] //服务器使用的 CGI 规范的版本。例如,“CGI/1.1”。
$_SERVER['SERVER_NAME'] //当前运行脚本所在服务器主机的名称。
$_SERVER['SERVER_SOFTWARE'] //服务器标识的字串,在响应请求时的头部中给出。
$_SERVER['SERVER_PROTOCOL'] //请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。
$_SERVER['REQUEST_METHOD'] //访问页面时的请求方法。例如:“GET”、“HEAD”,“POST”,“PUT”。
$_SERVER['QUERY_STRING'] //查询(query)的字符串。
$_SERVER['DOCUMENT_ROOT'] //当前运行脚本所在的文档根目录。在服务器配置文件中定义。
$_SERVER['HTTP_ACCEPT'] //当前请求的 Accept: 头部的内容。
$_SERVER['HTTP_ACCEPT_CHARSET'] //当前请求的 Accept-Charset: 头部的内容。例如:“iso-8859-1,*,utf-8”。
$_SERVER['HTTP_ACCEPT_ENCODING'] //当前请求的 Accept-Encoding: 头部的内容。例如:“gzip”。
$_SERVER['HTTP_ACCEPT_LANGUAGE']//当前请求的 Accept-Language: 头部的内容。例如:“en”。
$_SERVER['HTTP_CONNECTION'] //当前请求的 Connection: 头部的内容。例如:“Keep-Alive”。
$_SERVER['HTTP_HOST'] //当前请求的 Host: 头部的内容。
$_SERVER['HTTP_REFERER'] //链接到当前页面的前一页面的 URL 地址。
$_SERVER['HTTP_USER_AGENT'] //当前请求的 User_Agent: 头部的内容。
$_SERVER['HTTPS'] //如果通过https访问,则被设为一个非空的值(on),否则返回off
$_SERVER['REMOTE_ADDR'] //正在浏览当前页面用户的 IP 地址。
$_SERVER['REMOTE_HOST']//正在浏览当前页面用户的主机名。
$_SERVER['REMOTE_PORT'] //用户连接到服务器时所使用的端口。
$_SERVER['SCRIPT_FILENAME'] //当前执行脚本的绝对路径名。
$_SERVER['SERVER_ADMIN'] //管理员信息
$_SERVER['SERVER_PORT'] //服务器所使用的端口
$_SERVER['SERVER_SIGNATURE'] //包含服务器版本和虚拟主机名的字符串。
$_SERVER['PATH_TRANSLATED'] //当前脚本所在文件系统(不是文档根目录)的基本路径。
$_SERVER['SCRIPT_NAME'] //包含当前脚本的路径。这在页面需要指向自己时非常有用。
$_SERVER['REQUEST_URI'] //访问此页面所需的 URI。例如,“/index.html”。
$_SERVER['PHP_AUTH_USER'] //当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。
$_SERVER['PHP_AUTH_PW'] //当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。
$_SERVER['AUTH_TYPE'] //当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型。
$_SERVER[”HTTP_X_FORWARDED_FOR”] //透过代理服务器取得客户端的真实 IP 地址
$_SERVER['HTTP_VIA'] //代理服务器IP
$_SERVER['HTTP_CLIENT_IP'] //客户端IP

5.可变变量(PHP创造性的地方)

//变量名本身是另外一个变量的变量
$v = 10;
echo $v1;//输出为10
$str = "v";
echo $$str;输出为10,相当于$v变量

6.关于常量

//常量就是不会变也不允许变化的数据
//常量的两种定义形式:
define('PI',3.14);
const PI = 3.14;
//常量名建议全部大写
//常量的两种引用方式
$v = PI * 3;
$v = constant("PI") * 3;
//常量一旦被定义后,只能被引用,无法被赋新值
//常量定义时只能直接写值,无法在一个表达式中先计算再定义
const PI = 3 + 3;//这么写是错的


//使用defined来判断常量是否存在
defined("PI");//常量PI存在则返回true,判断变量是否被设值用isset()
if(!defined("PI")){
    define("PI",3.14);//如果没定义,就定义
}


//常用的预定义常量
PHP_INT_MAX;//PHP中最大的整数
M_PI;//圆周率

//魔术常量
__DIR__;当前文件所在目录,如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。
__FILE__;//文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。
__LINE__;当前常量所在行的行号

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值