php基础学习
一、PHP 服务器组件
包含了 PHP、Apache、Mysql 等服务,免去了开发人员将时间花费在繁琐的配置环境过程。
1. phpStudy(推荐)
php中文网旗下的phpstudy,国内经典的php环境搭建工具,可以快速搭建php运行环境!推荐使用phpstudy 2018或者phpstudy V8版本
2. WampServer
Window 系统可以使用 WampServer,支持32位和64位系统,可根据自己的系统选择版本。
3. XAMPP
XAMPP 支持 Mac OS 和 Window 系统
二、IDE (Integrated Development Environment,集成开发环境)
-
Eclipse for PHP(免费)
-
PhpStorm(收费)
PhpStorm是一个轻量级且便捷的PHP IDE,其旨在提供用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查。PhpStorm 非常适合于PHP开发人员及前端工程师。提供诸于:智能HTML/CSS/JavaScript/PHP编辑、代码质量分析、版本控制集成(SVN、GIT)、调试和测试等功能。
三、PHP - 数组排序函数
php数组排序的方法有哪些?
sort() - 对数组进行升序排列
rsort() - 对数组进行降序排列
asort() - 根据关联数组的值,对数组进行升序排列
ksort() - 根据关联数组的键,对数组进行升序排列
arsort() - 根据关联数组的值,对数组进行降序排列
krsort() - 根据关联数组的键,对数组进行降序排列
四、PHP 超级全局变量
PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。
php超全局变量有哪些?
PHP 超级全局变量列表:
1、
G
L
O
B
A
L
S
2
、
GLOBALS 2、
GLOBALS2、_SERVER
3、
R
E
Q
U
E
S
T
4
、
_REQUEST 4、
REQUEST4、_POST
5、
G
E
T
6
、
_GET 6、
GET6、_FILES
7、
E
N
V
8
、
_ENV 8、
ENV8、_COOKIE
9、$_SESSION
$_SERVER 变量中的重要元素:
元素/代码 描述
$_SERVER[‘PHP_SELF’]
当前执行脚本的文件名,与 document root 有关。例如,在地址为 http://example.com/test.php/foo.bar 的脚本中使用 $_SERVER[‘PHP_SELF’] 将得到 /test.php/foo.bar
$_SERVER[‘GATEWAY_INTERFACE’]
服务器使用的 CGI 规范的版本;例如,“CGI/1.1”。
$_SERVER[‘SERVER_ADDR’]
当前运行脚本所在的服务器的 IP 地址。
$_SERVER[‘SERVER_NAME’]
当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。(如: www.php.cn)
$_SERVER[‘SERVER_PROTOCOL’]
请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。
$_SERVER[‘REQUEST_METHOD’]
访问页面使用的请求方法;例如,“GET”, “HEAD”,“POST”,“PUT”。
$_SERVER[‘QUERY_STRING’]
query string(查询字符串),如果有的话,通过它进行页面访问。
$_SERVER[‘HTTP_ACCEPT’] 当前请求头中 Accept: 项的内容,如果存在的话。
$_SERVER[‘HTTP_ACCEPT_CHARSET’] 当前请求头中 Accept-Charset: 项的内容,如果存在的话。例如:“iso-8859-1,*,utf-8”。
$_SERVER[‘HTTP_HOST’]
当前请求头中 Host: 项的内容,如果存在的话。
$_SERVER[‘HTTPS’]
如果脚本是通过 HTTPS 协议被访问,则被设为一个非空的值。
$_SERVER[‘REMOTE_ADDR’]
浏览当前页面的用户的 IP 地址。
$_SERVER[‘REMOTE_HOST’]
浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。
$_SERVER[‘REMOTE_PORT’]
用户机器上连接到 Web 服务器所使用的端口号。
$_SERVER[‘SERVER_PORT’]
Web 服务器使用的端口。默认值为 “80”。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。
五、PHP魔术常量
1、LINE 文件中的当前行号。
实例:
<?php echo '这是第 “ ' . __LINE__ . ' ” 行'; ?>以上实例输出结果为:
这是第 “ 2 ” 行
2、FILE
文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。
自 PHP 4.0.2 起,FILE 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。
实例:
<?php echo '该文件位于 “ ' . __FILE__ . ' ” '; ?>以上实例输出结果为:
该文件位于 " E:\wamp\www\test\index.php "
3、DIR
文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
它等价于 dirname(FILE)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增)
实例:
<?php echo '该文件位于 “ ' . __DIR__ . ' ” '; ?>以上实例输出结果为:
该文件位于 “ E:\wamp\www\test ”
4、FUNCTION
函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
实例:
<?php function test() { echo '函数名为:' . __FUNCTION__ ; } test(); ?>以上实例输出结果为:
函数名为:test
5、CLASS
类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。
在 PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar)。注意自 PHP 5.4 起 CLASS 对 trait 也起作用。当用在 trait 方法中时,CLASS 是调用 trait 方法的类的名字。
实例:
<?php class test { function _print() { echo '类名为:' . __CLASS__ . ""; echo '函数名为:' . __FUNCTION__ ; } } $t = new test(); $t->_print(); ?>
以上实例输出结果为:
类名为:test
函数名为:_print
6、METHOD
类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
实例:
<?php function test() { echo '函数名为:' . __METHOD__ ; } test(); ?>以上实例输出结果为:
函数名为:test
7、NAMESPACE
当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。
实例:
<?php namespace MyProject; echo '命名空间为:"', __NAMESPACE__, '"'; // 输出 "MyProject" ?>以上实例输出结果为:
命名空间为:“MyProject”
六、面向对象内容
1、类 − 定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作。
2、对象 − 是类的实例。
3、成员变量 − 定义在类内部的变量。该变量的值对外是不可见的,但是可以通过成员函数访问,在类被实例化为对象后,该变量即可称为对象的属性。
3、成员函数 − 定义在类的内部,可用于访问对象的数据。
4、继承 − 继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
PHP 使用关键字 extends 来继承一个类,PHP 不支持多继承,格式如下:
class Child extends Parent {
// 代码部分
}
5、父类 − 一个类被其他类继承,可将该类称为父类,或基类,或超类。
6、子类 − 一个类继承其他类称为子类,也可称为派生类。
7、多态 − 多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。
8、重载 − 简单说,就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。
9、抽象性 − 抽象性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。
抽象类
任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。
定义为抽象的类不能被实例化。
10、封装 − 封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内。
11、构造函数 − 主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。
function __construct( $par1, $par2 ) {
$this->url = $par1;
$this->title = $par2;
}
12、析构函数 − 析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做"清理善后" 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。
function __destruct() {
print "销毁 " . $this->name . “\n”;
}