php入门
php是什么
PHP(Hypertext Preprocessor)是一种创建动态交互性站点的强有力的服务器端开源脚本语言。
php特点
- PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。
- PHP可以比CGI或者Perl更快速的执行动态网页——动态页面方面,与其他的编程语言相比,
PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多;
PHP具有非常强大的功能,所有的CGI的功能PHP都能实现。 - PHP支持几乎所有流行的数据库以及操作系统。
- 最重要的是PHP可以用C、C++进行程序的扩展!
php优势
开放源代码
所有的PHP源代码事实上都可以得到。免费性
和其它技术相比,PHP本身免费且是开源代码。快捷性
程序开发快,运行快,技术本身学习快。嵌入于HTML:因为PHP可以被嵌入于HTML语言,它相对于其他语言。编辑简单,实用性强,更适合初学者。跨平台性强
由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS、Mac OS、Android等平台。效率高
PHP消耗相当少的系统资源。图像处理
用PHP动态创建图像,PHP图像处理默认使用GD2。且也可以配置为使用image magick进行图像处理。面向对象
在php4,php5 中,面向对象方面都有了很大的改进,php完全可以用来开发大型商业程序。专业专注
PHP支持脚本语言为主,同为类C语言。
开发工具
集成开发环境是一种集成了软件开发过程中所需主要工具的集成开发环境,其功能包括但不仅限于代码高亮、代码补全、调试、构建、版本控制等。一些常见的PHP IDEs如下:
- Zend Studio:商业版,Zend官方出品,基于eclipse
- Eclipse with PDT:免费
- PHP Storm:商业版
php安装
使用php进行web系统开发,需要:
- 安装 Web 服务器
- 安装 PHP
- 安装数据库,比如 MySQL
官方 PHP 网站(PHP.net)有 PHP 的安装说明: http://php.net/manual/zh/install.php
php依赖管理
对于现代语言而言,包管理器基本上是标配。Java 有 Maven,Python 有 pip,Ruby 有 gem,Nodejs 有 npm。而Composer,是PHP依赖管理的利器。
1 | 1、安装Composer: |
php插件安装
Linux系统中,PHP安装成功后,在bin目录下会生成一个名叫phpize的可执行脚本,这个脚本的用途是动态安装php扩展模块。
1 | 注:以PHP安装mysql.so扩展为例 |
php基础语法
- 基础php语法:
PHP 脚本可放置于文档中的任何位置。
PHP 脚本以 <?php 开头,以 ?> 结尾
1 | <?php |
- php中的注释:
1 | // 这是单行注释 |
- php大小写敏感
在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感。
不过在 PHP 中,所有变量都对大小写敏感。
- php变量
PHP 是一门类型松散的语言,PHP根据它的值,自动把变量转换为正确的数据类型。
1 | PHP 变量规则: |
- php数据类型
字符串、整数、浮点数、逻辑、数组、对象、NULL。
- php字符串函数
1 | strlen() //返回字符串的长度 |
- php常量
常量是单个值的标识符(名称)。在脚本中无法改变该值。
有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。
1 | <?php |
- php运算符
1 | 算术运算符: |
- php条件语句
在您编写代码时,经常会希望为不同的决定执行不同的动作。您可以在代码中使用条件语句来实现这一点。
在 PHP 中,我们可以使用以下条件语句:
1 | if 语句 - 如果指定条件为真,则执行代码 |
- php循环语句
在您编写代码时,经常需要反复运行同一代码块。我们可以使用循环来执行这样的任务,而不是在脚本中添加若干几乎相等的代码行。
1 | while - 只要指定条件为真,则循环代码块 |
- php函数
除了内建的 PHP 函数,我们可以创建我们自己的函数。
用户定义的函数声明以”function” 开头,可以通过参数向函数传递信息。
参数被定义在函数名之后,括号内部。您可以添加任意多参数,只要用逗号隔开即可。
1 | function sum($x,$y) { |
- php数组
数组能够在单独的变量名中存储一个或多个值。
1 | <?php |
- php超级全局变量
PHP中预定义了几个超级全局变量(superglobals),这意味着它们在一个脚本的全部作用域中都可用。你不需要特别说明,就可以在函数及类中使用。
1 | $GLOBALS //$GLOBALS 是PHP的一个超级全局变量组,包含了全部变量的全局组合数组。变量的名字就是数组的键 |
- php魔术变量
PHP 向它运行的任何脚本提供了大量的预定义常量。魔术常量它们的值随着它们在代码中的位置改变而改变。
1 | __LINE__ //文件中的当前行号。 |
- php命名空间
PHP 命名空间可以解决以下两类问题:
1、用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
2、为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。
1 | <?php |
- php面向对象
面向对象关键知识点:
1 | 类:定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作。 |
PHP 对属性或方法的访问控制,是通过在前面添加关键字 public(公有),protected(受保护)或 private(私有)来实现的。
public(公有):公有的类成员可以在任何地方被访问。
protected(受保护):受保护的类成员则可以被其自身以及其子类和父类访问。
private(私有):私有的类成员则只能被其定义所在的类访问。
1 | <?php |
php入门实践
1 | 使用LNMP(linux+nginx+mysql+php)完成demo的开发。 |
相关学习资料
php官网
PHP入门教程
PHPChina开发者社区
PHP Composer:PHP依赖管理工具
Laravel官网:最流行的PHP开发框架
ThinkPHP:中文最佳实践PHP开源框架
CodeIgniter:一个小巧但功能强大的PHP框架
Yii:基于组件,用于开发大型Web应用的高性能PHP框架
Swoole:php的异步、并行、高性能网络通信引擎
Workerman:一款纯PHP开发的开源的PHP socket服务器框架