PHP初了解

PHP 简介

PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。

PHP 脚本在服务器上执行。

PHP 文件必须为英文名,防止出现错误;PHP 代码必须加分号。

  1. PHP 是 “PHP Hypertext Preprocessor” (超文本预处理器)的缩写。
  2. PHP 是一种被广泛使用的开源脚本语言。
  3. PHP 脚本在服务器上执行。
  4. PHP 可以免费下载和使用。

PHP 文件:

  1. PHP 文件能够包含文本、HTML、CSS 以及 PHP 代码。
  2. PHP 代码在服务器上执行,而结果以纯文本返回浏览器。
  3. PHP 文件的后缀是 “.php”。

PHP 优点:

  1. 开源
  2. 能运行于各种平台(Windows,Linux,Unix,Mac OS X 等等)
  3. 兼容几乎所有的服务器
  4. 语法简单,极易学习
  5. 功能强大,能做大型开发
  6. 能够动态生成web页面内容(php代码可以嵌入到html代码中)

环境搭建

通过XAMPP(Apache+MySQL+PHP+Perl)建站集成软件包来安装。使用XAMPP目的是因为手动安装Apache+MySQL+PHP环境过于复杂,使用XAMPP只需点击安装即可。

XAMPP常见问题

  1. Apache启动失败:运行sudo apachectl stop
  2. MySQL启动失败:(1)sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop (2)使用ps-eflgrep mysql查找进程号,通过kill杀掉进程

PHP 基础语法

PHP脚本以<?php开头,以?>结尾:

1
2
3
<?php
//此处是 PHP 代码
?>

PHP注释:

  1. 多行注释
  2. 单行注释
  3. 文档注释
1
2
3
4
5
6
7
8
9
10
11
12
1.多行注释
/*
注释内容
注释内容
*/
2.单行注释
//注释内容
3.文档注释
/**
*注释文档
*注释文档
*/

变量的声明:

  1. 变量以$开头,后面跟变量名
  2. 变量只能由字母,数字,下划线组成,不能以数字开头
  3. 变量名区分大小写
  4. PHP 与 JavaScript 类似,不需要实现声明变量的数据类型
1
2
$name = "xiaoming";
$age = 18;

变量的赋值:

  1. 值赋值:即将赋值表达式的值复制给变量(直接赋值);
  2. 引用赋值:创建的一个变量与另一个变量引用的内容相同(引用相同地址)。
1
2
$var = "hello";
$var1 = &$var;//把变量var的引用赋值给var1

变量的变量:

1
2
3
4
5
$say = "hello";
$$say = "world";//相当于$hello = "world";
echo $say;//输出hello
echo $hello;//输出world
echo ${$ay};//输出world

超全局变量:

PHP提供很多预定义变量,用于提供大量与环境有关的信息

打印/输出超全局变量:print_r($_SERVER);

1.$_SERVER 服务器变量,该全局变量包含着服务器和客户端配置及当前请求环境的有关信息

$_SERVER[‘SERVER_NAME’] : 当前运行脚本所在的服务器的主机名

$_SERVER[‘REMOTE_ADDR’] : 客户端IP地址

$_SERVER[‘REQUEST_URI’] : URL的路径部分

$_SERVER[‘HTTP_USER_AGENT’] : 操作系统和浏览器的有关信息

2.$_GET 该变量包含使用GET方法传递的参数地有关信息

3.$_POST 该变量包含使用POST方法传递的参数地有关信息

4.$_REQUEST 该变量记录着通过各种输入方法传递给脚本的变量,如GET POST,但是不建议使用,因为它不安全而且速度较慢

5.$_COOKIE cookie变量数组

6.$_SESSION 会话变量数组

7.$_FILES 与上传文件有关的变量数组

8.$_ENV 环境变量数组

9.$GLOBALS 所有全局变量数组

常量:

常量是指在程序执行中无法修改的值。

  1. 在脚本执行期间该值不能改变;
  2. 常量对大小写敏感,通常常量名总是大写;
  3. 常量是全局的,可以在脚本的任何地方引用;
  4. 常量分为内置常量和自定义常量;
  5. 常量使用define()函数定义。
1
2
define('PI',3.1415926,false);//第三个参数:是否对大小写敏感(默认false对大小写敏感;true对大小写不敏感)
echo PI;//3.1415926

一、内置常量

PHP_OS PHP 所在操作系统的名称

PHP_VERSION 当前PHP 的版本号

二、魔术常量

__LINE__ 文件中的当前行号

__FILE__ 文件的完整路径和文件名

__FUNCTION__ 函数名称

__CLASS__ 类的名称

__METHOD__ 类的方法名

数据类型

标量数据类型

一、字符串

字符串有三种定义方式:单引号,双引号,定界符(heredoc);

单引号字符串中出现的变量不会被变量的值替代;

双引号字符串中最重要的一点是其中的变量会被变量值替代;

如果遇到美元符号($),解析器会尽可能多地取得后面的字符以组成一个合法的变量名,如果想明确的制定名字的结束,用{}把变量名包括起来。

字符串定界的方法使用定界符语法<<<

1
2
3
4
5
$str = <<< EOD
Example of string
using heredoc syntax.
EOD;
echo $str;

在PHP 定界符中的任何特殊字符,都不需要转义,PHP 定界符中的PHP变量会被正常的用其值来替换。

使用定界符要注意:结束标识符所在的行不能包含任何其他字符,这意味着该标识符不能被缩进,在分号之前、之后都不能有任何空格或制表符。

1
2
3
4
5
6
7
字符串转义
\n 换行
\r 回车
\t 水平制表符(tab键)
\\ \(反斜杠)
\$ $(美元符)
\" "(双引号)

二、整型(integer)

整型是没有小数的数字。整型必须有至少一个数字(0-9);整型不能包含逗号或空格;整型不能有小数点;整型正负均可;可以用三种格式规定整型:十进制、十六进制或八进制。

三、浮点型(float,double)

浮点数是有小数点或指数形式的数字,分为单精度(float)和双精度(double)

四、布尔型(bool)

布尔型指true或false。

复合数据类型

一、数组

数组在一个变量中存储多个值。

二、对象

特殊数据类型

一、资源

$fh = fopen("text.txt","r");

二、null

null 无,表示没有值,null不表示空格,也不表示0。

以下情况认为是null:

  1. 没有设置为任何预定义的变量;
  2. 明确的赋值为null;
  3. 使用函数unset()清除。
自动类型转换

因PHP 对于类型定义非常的松散,所以有时候会根据引用变量的环境,将变量自动转换为最适合的类型。

1
2
3
4
5
6
7
8
9
10
11
12
$num = 5;
$str = "15";
echo $num + $str;

$str = "100 hehe";
$num = 200;
echo $num + $str;

$str = "1.5";
if($str){ //if判断为true
echo "hello world";
}
类型相关函数

1.gettype() 返回变量的类型,可能的值有 string、integer、float、boolean、array、object、null、unknown。

2.is_type() 查看变量是否属于某个类型,是返回TRUE,否返回FALSE。

3.var_dump() 获取变量的值和类型的详细信息。