PHP七天系列之基础知识

2020-04-13  本文已影响0人  PFinal南丞

基础入门

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的特点

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

上一篇下一篇

猜你喜欢

热点阅读