PHP七天系列之基础知识
基础入门
PHP是什么?
PHP(PHP: Hypertext Preprocessor,超文本预处理器的缩写),是一种被广泛应用的开放源代码的、基于服务器端的用于产生动态网页的、可嵌入HTML中的脚本程序语言,尤其适合 WEB 开发。
当客户端向服务器的程序提出请求时,web服务器根据请求响应对应的页面,当页面中含有php脚本时,服务器会交给PHP解释器进行解释执行,将生成的html代码再回传给客户端,客户端的浏览器解释html代码,最终形成网页格式的页面。
执行方式
PHP 代码被包含在特殊的起始符和结束符中,使得网页的脚本可以进出“PHP 模式”。其它用 C 或 Perl 语言写的脚本,需要用大量的命令来编写程序以输出 HTML ,而用PHP 编写一个 HTML 脚本,只需嵌入了一些代码来完成操作(例如,在本例中输出了一些文本)。和客户端的 JavaScript 不同的是,PHP 代码是运行在服务端的。如果在服务器上建立了如上例类似的代码,则在运行该脚本后,客户端就能接收到其结果,但他们无法得知其背后的代码是如何运作的。甚至可以将 web 服务器设置成让 PHP 来处理所有的 HTML 文件,这么一来,用户就无法得知服务端到底做了什么。
PHP运行环境安装
大家在初始学习PHP时使用集成化开发环境是最好的选择,下面是常用的集成开发环境
集成开发软件 | 可使用的操作系统 | 说明 |
---|---|---|
WAMP | Win | 推荐 |
XAMPP | Win/Mac | |
Mamp | Mac | 推荐 |
Lamp | Linux(CentOS/Fedora/Debian/Ubuntu) |
PHP的特点
- 是开放源代码的,服务器端的脚本语言。
- 独立于操作系统,可以运行在几乎所有系统中。
- 支持大部分的服务器,如Apache,IIS。
- 支持大量的数据库,主要是Access\MySQL\SQL Server这三种。
- 可以创建图象。
- … …
- 还有一些其他特色功能在后面的高级技术详细介绍。
- 我们知道的网站如迅雷、新浪微博等大型网站都在使用PHP程序。
C/S与B/S结构
C/S结构
C/S (Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构
B/S****结构
B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。
集成开发环境
WAMP
Windows下的Apache+Mysql/MariaDB+Perl/PHP/Python,一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。
MAMP
苹果系统下MAMP PRO是专业级版本的经典本地服务器环境的os x软件。MAMP这几个首字母代表苹果的OSX系统上的Macintosh、Apache、MySQL和PHP,顾名思义,你应该知道MAMP的强大功能 啦!MAMP 内含 Apache 伺服器、PHP 安装套件以及MySQL安装套件。
PHP的标记风格
<?php … … ?>
这是PHP推荐使用的标记风格。服务器管理员不能禁用这种风格的标记。
分号
PHP用分号来分隔简单的语句。复合语句用大括号来标记代码块,如条件测试或循环,在大括号后面不要用分号。和其他语言不一样的是,在PHP中右括号(?>)前的分号不是必选的。
空白和换行符
一般来说,空白符在PHP中无关紧要。可以将一个语句展开成任意行,或者将语句紧缩在一行。
可以利用这个灵活的格式来使代码更具有可读性(通过排列分配、缩进等)。一些懒惰的程序员利用这种自由的格式创建根本无法阅读的代码,这是不提倡的。
程序的注释
PHP支持C、C++和Shell脚本风格的注释,如下:
// 单行注释
/* ...*/ 多行注释 (注意:不能嵌套)
# 脚本注释
查看数据
echo
输出一个或多个变量,他不是函数,不需要使用括号,如果输出多个请用逗号分隔
echo 1,2,3,4;
var_dump
打印变量的相关信息
var_dump(1234);
区别:echo 是直接输出,var_dump输出和带有变量类型
变量知识
定义变量
PHP是弱类型语言,不像其他语言需要对变量进行类型声明。PHP中以 $ 作为前缀来定义变量,以a~z(大小写)或 _ 下划线定义变量名。
下面是合法的变量名
$pf = 'pfinal.com';
$_name = 'PFinal社区';
下面是非法的变量声明
$999 = 'yahoo.com'
$&* = 'sina.com.cn'
弱类型
PHP是一种非常弱的类型语言。在大多数编程语言中,变量只能保持一种类型的数据,而且这个类型必须在使用变量前声明,例如C语言中。
而在PHP中,变量的类型通常不是由程序员设定的,确切地说,是根据该变量使用的上下文在运行时(即变量的值)决定的。
简单来说,var = 1;就是数字,var2 = '1'就是字符串,变量类型是由值决定的。
传值与引用
传值赋值
直接使用 =
将变量的值赋值给另一个变量。
$a = 1;
$b = $a;
$b = 2;
echo $a;//结果是1
引用赋值
将一个变量的内存地址赋值给另一个变量的行为即传址赋值。需要在 =
等号前加上 &
引用符号,这样两个变量指向内存中的一个地址,任何一个变量的改变都影响到另一个变量,有点类似于快捷方式的概念。
$a = 1;
$b = &$a;
$b = 2;
echo $a;//结果是2
可变变量
可以变量即使用一个变量的值,作为另一个变量名。
$a = 'hello'; //普通变量
$$a = 'world'; //可变变量 相当于:$hello = ‘world’;
echo "$a ${$a}";//输出:hello world
echo "$a $hello";//输出:hello world
变量作用域
变量作用域指变量在代码中可以访问的位置。
超全局变量
可以代码的任何位置都可以访问的变量
变量 | 说明 |
---|---|
$_GET | 地址栏GET提交 |
$_POST | 表单POST提交 |
$_FILES | 文件上传变量 |
$_SESSION | 会话变量 |
$_COOKIE | cookie值变量 |
$_GLOBALS | 全局变量 |
$_REQUEST | 包含$_GET、$_POST、$_COOKIE |
$_SERVER | 服务器环境变量 |
全局变量
全局声明(函数外声明)的变量会保存在 $_GLOBALS
中,函数内默认不能访问到全局变量,在函数中访问需要使用 global
关键字。
$pf='PFinal社区';
function p() {
//利⽤ global 引入全局变量
global $pf;
echo $pf;
}
p();
也可以使用全局数组$GLOBALS调⽤用全局变量量。 如: $GLOBALS['hd'];
检测变量
通过isset 函数可以检测变量是否定义。
var_dump(isset($name));
# 结果是false
变量销毁
php在全部代码执行结束后会删除所有变量,也使用 unset
函数可以在程序运行中删除变量。
$name='pfinalClub.com';
unset($name);
全局变量不能在函数中删除
$name = 'pfinalClub.com';
function run()
{
global $name;
unset($name);
}
run();
echo $name;
# 依然可以输出 pfinalClub.com