1.1案例介绍
每个程序员在学习一门新的编程语言的时候要做的第一个例子就是向世界问好
<html>
<head>
<title>Hello,World!</title>
</head>
<body>
<?php
echo"Hello World!";
?>
</body>
</html>
1.2分析案例
我们仅仅是通过了一条输出语句,向世界做了一个简短的问候,我们通过这个问候来开启我们学习一门新编程语言的大门。我们仅仅用了一条输出语句来完成这个功能。
1.3核心知识
PHP基本语法,基本输出的使用,PHP与HTML的结合
1.4知识讲解
1.4.1 B/S与C/S比较

C/S与 B/S 区别:
Client/Server是建立在局域网的基础上的。Browser/Server是建立在广域网的基础上的。
1.硬件环境不同:C/S 一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。B/S 建立在广域网之上的,不必是专门的网络硬件环境,例与电话上网,租用设备,信息自己管理。有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。
2.对安全要求不同:C/S一般面向相对固定的用户群,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S 结构适宜。可以通过B/S发布部分可公开信息。B/S 建立在广域网之上,对安全的控制能力相对弱,面向是不可知的用户群。
3.对程序架构不同:C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。B/S 对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上。比C/S有更高的要求 B/S结构的程序架构是发展的趋势,从MS的。Net系列的BizTalk 2000 Exchange 2000等,全面支持网络的构件搭建的系统。SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟。
4.软件重用不同:C/S程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好。B/S 对的多重结构,要求构件相对独立的功能。能够相对较好的重用。就入买来的餐桌可以再利用,而不是做在墙上的石头桌子。
5.系统维护不同:系统维护是软件生存周期中,开销大,-------重要 C/S 程序由于整体性, 必须整体考察,处理出现的问题以及系统升级。升级难。可能是再做一个全新的系统。B/S 构件组成,方便构件个别的更换,实现系统的无缝升级。系统维护开销减到最小。用户从网上自己下载安装就可以实现升级。
6.处理问题不同:C/S程序可以处理用户界面固定,并且在相同区域,安全要求高需求,与操作系统相关。应该都是相同的系统。B/S 建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的。与操作系统平台关系最小。
7.用户接口不同:C/S多是建立的Window平台上,表现方法有限,对程序员普遍要求较高 B/S 建立在浏览器上,有更加丰富和生动的表现方式与用户交流。并且大部分难度减低,减低开发成本。
8.信息流不同:C/S程序一般是典型的中央集权的机械式处理,交互性相对低 B/S 信息流向可变化,B-B B-C B-G等信息、流向的变化,更象交易中心。
1.4.2 PHP是什么
PHP 是什么?
PHP(PHP: Hypertext Preprocessor,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 WEB 开发。
PHP能做什么?
PHP主要是用于服务端的脚本程序,因此您可以用 PHP 来完成任何其它的 CGI 程序能够完成的工作,例如收集表单数据,生成动态网页,或者发送/接收 Cookies。但 PHP 的功能远不局限于此。
1.4.2.1 PHP的词法结构
1.大小写
同内置结构和关键字(如echo、while、class等)一样,用户自定义的类名和函数名都是不区分大小写的。因此,下面三行是等价的:
echo “hello,world”;
ECHO “hello,world”;
EcHo “hello,world”;
另一方面,变量是区分大小的。这就是说,$name、$NAME 和$NaMe是三个不同的变量。
2.分号
PHP用分号来分隔简单的语句。复合语句用大括号来标记代码块,如条件测试或循环,在大括号后面不要用分号。和其他语言不一样的是,在PHP中右括号(?>)前的分号不是必选的。
3.空白和换行符
一般来说,空白符在PHP中无关紧要。可以将一个语句展开成任意行,或者将语句紧缩在一行。
可以利用这个灵活的格式来使代码更具有可读性(通过排列分配、缩进等)。一些懒惰的程序员利用这种自由的格式创建根本无法阅读的代码,这是不提倡的。
4.程序的注释:
对于阅读代码的人来说,注释其实就相当于代码的解释和说明。注释可以用来解释脚本的用途、脚本编写人、为什么要按如此的方法编写代码、上一次修改的时间等等。
PHP支持C、C++和Shell脚本风格的注释,如下:
—— // 单行注释
—— /* */ 多行注释(注意:不能嵌套)
—— # 脚本注释
软件准备
phpStorm,wamp
安装
傻瓜式安装
配置
根据自己下载的软件上网找到适合版本的配置教程,调试站点直到可以运行php文件。
1.1 变量的定义
PHP 中一个美元符号($)后面跟上一个变量名称,即表示一个变量。变量的名称是对大小写敏感的。变量名与 PHP 中其它的标签一样遵循相同的规则。一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。
<?php$var = ‘Bob’;$Var = ‘Joe’;echo “$var, $Var”; //输出 “Bob, Joe”
$4site = ‘not yet’; //非法变量名;以数字开头$_4site = ‘not yet’; //合法变量名;以下划线开头$i站点is = ‘mansikka’; //合法变量名;可以用中文
isset($var); //检查变量是否定义
unset($var); //删除变量$var
empty($var); //判断一个变量的值是否存在
echo $var ; //空
?>
1.2 可变变量
有时候使用可变变量名是很方便的。就是说,一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。 例如:
<?php $a = ‘hello’; //普通变量
$$a = ‘world’; //可变变量 echo "$a ${$a}"; //输出:hello world
echo "$a $hello"; //输出:hello world
?>
1.3 变量引用
引用操作符&可以在关联赋值中使用,就像一个别名,使得变量都指向了内存的相同地址。
新的变量简单的引用(换言之,“成为其别名” 或者 “指向”)了原始变量。改动新的变量将影响到原始变量,反之亦然。
<?php
$foo =‘Bob’; // 给$foo赋值为‘Bob’
$bar = &$foo; //引用$foo的值给到$bar
$bar =“My name is $bar”; // 个性$bar的值
echo $bar; //输出$bar
echo $foo; // $foo的值也改变了
?>
有时候使用可变变量名是很方便的。就是说,一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。 例如:
<?php $a = ‘hello’; //普通变量
$$a = ‘world’; //可变变量 echo "$a ${$a}"; //输出:hello world
echo "$a $hello"; //输出:hello world
?>
1.4 常量
常量是固定的值例如圆周率,用一个简单的标识符进行定义(名字)。常量默认为大小写敏感。按照惯例常量标识符总是大写的。
常量名和其它任何PHP标签遵循同样的命名规则。合法的常量名以字母或下划线开始,后面跟着任何字母,数字或下划线。
常量的定义:
可以用define( ) 函数来定义常量。一个常量一旦被定义,就不能再改变或者取消定义。
常量分为:内置常量和自定义常量。
常量只能包含标量数据(boolean,integer,float 和string)。
自定义常量
用define( )函数来自定义常量:
define(“mycomputer”, “IBM”);
定义常量:mycomputer 常量的值为 IBM
defined(“mycomputer”);
检测常量是否被定义,已定义返回1 否则返回空
例:
define(‘NAME’, ‘php’);
define(‘NAME’, ‘linux’);
echo NAME;
常量使用实例:
<?php//合法的常量名define("FOO", "something");define("FOO2", "something else");define("FOO_BAR", "something more");//非法的常量名define("2FOO", "something");
//常量的输出(注意大小写)
echo FOO;
echo FOO2;
?>
PHP一些常见的系统常量(部分)
——__FILE__:PHP文件名
——__LINE__:PHP文件的行数
——TRUE FALSE:表示真假的常量
——PHP_OS:显示服务器的操作系统版本
——PHP_VERSION:显示PHP版本
——E_ERROR:指明了代码中最近的错误处
——E_WARNING:指明了代码中最近的警告处
——E_PARSE:分析代码何处有着潜在的问题
——E_NOTICE:为发生不寻常但不一定是错误的地方
1.5常量和变量不同
常量前面没有美元符号($),而变量有;
常量只能用 define( ) 函数定义,而不能通过赋值语句;
常量可以不用理会变量范围的规则而在任何地方定义和访问;
常量一旦定义就不能被重新定义或者取消定义;
常量的值只能是标量。
PHP是一种非常弱的类型语言。在大多数编程语言中,变量只能保持一种类型的数据,而且这个类型必须在使用变量前声明,例如C语言中。而在PHP中,变量的类型通常不是由程序员设定的,确切地说,是根据该变量使用的上下文在运行时(即变量的值)决定的。
PHP 支持八种原始类型:
四种标量类型:
布尔型(boolean)
整型(integer)
浮点型(float)(浮点数,也作double)
字符串(string)
两种复合类型:
数组(array)
对象(object)
最后是两种特殊类型:
资源(resource)
NULL
整型
整数
<?php $a = 10; $a = 123456; $a = 7;?>
浮点型
浮点数(也叫小数,双精度数或实数)可以用以下任何语法定义。
<?php $a = 1.234; $a = 1.2e3; $a = 7E-10;?>
字符串
string是一系列字符。在 PHP 中,字符和字节一样,也就是说,一共有 256 种不同字符的可能性。这也暗示 PHP 对 Unicode 没有本地支持。(关于字符串类型后面专有一章详细讲解)
<?php
$str = “hello world!”;
?>
布尔型
这是最简单的类型。boolean 表达了真值,可以为 TRUE 或 FALSE。当其他类型转换为boolean类型 时,以下值被认为是FALSE:
—— 布尔值FALSE
—— 整型值0(零)
—— 浮点型值0.0(零)
—— 空白字符串和字符串"0"
—— 没有成员变量的数组
—— 没有单元的对象(仅适用于PHP 4)
—— 特殊类型NULL(包括尚未设定的变量)
—— 所有其它值都被认为是TRUE(包括任何资源)。
数组(Array)
数组是PHP中的一种重要的数据类型。一个标量只能存放一个数据,而数组可以存放多个数据。$my=array(‘1’,’2’,’abc’,’d’);
对象(Object)
对象是一种高级的数据类型
资源(Resource)
资源是由专门的函数来建立和使用的。
资源是一种特殊的数据类型,并由程序员分配(创建、使用和释放)。任何资源,在不需要的时候应该被及时释放。如果程序员忘记了释放资源,系统自动启用垃圾回收机制,以避免内存的消耗殆尽。这往往发生在PHP脚本运行结束之前,只有那时,系统才确信不会操作任何资源。用户无法获知某个资源的细节,它们通常包含诸如打开文件、数据库连接、图形画布区域的特殊句柄。只有在文档程序手册中,才能找到详细描述。
数据类型转换
PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有:
(int)、(integer):转换成整形
(float)、(double)、(real):转换成浮点型
(string):转换成字符串
(bool)、(boolean):转换成布尔类型
(array):转换成数组
(object):转换成对象
PHP数据类型有三种转换方式:
在要转换的变量之前加上用括号括起来的目标类型
使用3个具体类型的转换函数,intval()、floatval()、strval()
使用通用类型转换函数settype(mixed var,string type)
第一种转换方式:(int) (bool) (float) (string) (array) (object)
<?php
$num1=3.14;
$num2=(int)$num1;
var_dump($num1); //输出float(3.14)
var_dump($num2); //输出int(3)
?>
第二种转换方式:intval() floatval() strval()
<?php
$str="123.9abc";
$int=intval($str); //转换后数值:123
$float=floatval($str); //转换后数值:123.9
$str=strval($float); //转换后字符串:"123.9"
?>
第三种转换方式:settype();
<?php
$num4=12.8;
$flg=settype($num4,"int");
var_dump($flg); //输出bool(true)
var_dump($num4); //输出int(12)
?>
网友评论