1.php简介
php:personal home page 个人主页(面试可能会问)
Hypertext Preprocessor 超文本预处理器
html:Hyper Text Markup Language 超文本标记语言
2.php概述与名词解释
(1)基本语法与名词解释
1.php标记:<?php 和 ?>
。
分隔符号:php 需要在每个语句后用分号;结束指令,需要注意的是必须采用英文输出。
输出方法:echo命令
(2)变量
语法:$
变量名
笔记:不需要var声明,直接使用即可
(3)常量
语法:define
(‘常量名’, ‘简单值’);
为了区分变量和常量,我们约定常量在定义时均使用大写
php中实际上并不是所有的常量的值都不能改变,MC(魔术常量例如:this)就能够发生改变。
(4)表达式
语法:在php中表达式无法精确的被给出一个语法来设定,但可以简单设立一个通俗的标准。
那就是语句如果不加分号的部分,就是表达式。
3.php常见数据类型
var_dump(变量|表达式):函数用来查看表达式的值和归属类型。
gettype(变量|表达式) :函数用来查看变量或表达式的类型。
(1)布尔类型:Boolean
a.可以使用(bool)或(boolean)强制转换修饰符,
来对非布尔值类型的变量或表达式进行强制类型转换。
b.当转换为布尔值类型时,以下值被认为是FALSE
布尔值 FALSE 本身
整型值 0(零)
浮点型值 0.0(零)
空字符串,以及字符串 “0”
不包括任何元素的数组
特殊类型 NULL(包括尚未赋值的变量)
c.所有其它值都被认为是 TRUE(包括任何资源 和 NAN)
(2)整数类型:Integer
要使用八进制表达,数字前必须加上 0(零)。
要使用十六进制表达,数字前必须加上 0x。ren
要使用二进制表达,数字前必须加上 0b。
(3)浮点类型:Float
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
(4)字符类型:String
注意:php对双引号定义的字符串中的变量可以进行内容解析,而单引号则不行。
PHP独有!!!
(5)数组类型:Array
array( key => value , … )
// 键(key)可是是一个整数 integer 或字符串 string
// 值(value)可以是任意类型的值 。
1.php中数组的长度读取通过count()
函数实现
2.php中数组内部添加原本并不存在的key值,不会补齐之间的差值,
(6)对象类型:Object
语法:$obj = new Func;
注意:
a.php中类由class关键字声明,类名后没有小括号。
b.php中类内部的方法由->箭头来调用,而不是.点运算符。
例子:
class Peo{
function eat(){
echo '我会吃饭';
}
}
$frank = new Peo;
print_r($frank->eat());
(7)空值类型:NULL
4.php运算符
(1)字符串的拼接符号不再是+加号运算符,而是.点运算符。
(2)字符串内的+=运算符号也不再表示拼接,而是使用.=来进行拼接。
原本的+=仅用来单纯的数学运算累加。
5.php流程控制语句
(1)快速遍历不再是for-in结构,而是提供了一个foreach
语句
(2)文件引入语句include
和require
文件的单次引入语句include_onc
e和require_once
6.php函数
在函数外部定义的全局变量并不能在函数内部直接使用,而是需要通过关键词global在函数内部再次声明才可以。
7.php类与对象
(1)php中的类
描述:php中类的定义都以关键字 class
开头,后跟类名,再后面跟着一对花括号。
括号内包含有类的属性与方法的定义。
语法:class 类名 { 类内部的结构 }
一个类可以包含有属于自己的常量,变量【属性】以及函数【即方法】。
(2)php中的对象
描述:要创建一个类的实例,必须使用 new
关键字。类应在被实例化之前定义。
语法:$对象名 = new 类名();
说明:
a.对于创建对象的语句中,new后面的类名后有没有小括号都可以。
b.对象与对象之间的传值仍然是赋值传递,只不过传递的内容是一个内存地址。
(3)php中类的属性与属性类型关键词
语法: class 类名{
属性关键词 $变量名(属性名) = 属性值;
属性关键词 function 方法名 (参数1,参数2,…){ 方法内容代码; }
}
说明:
a.属性中的变量可以初始化,但初始化的值必须是常数。
b.类的属性和方法如果没有写明类型关键词,则都默认是公有
public:被定义为公有的类成员可以在任何地方被访问。
protect:被定义为受保护的类成员则可以被其自身以及其子类和父类访问。
private:被定义为私有的类成员则只能被其定义所在的类访问。
c.在类的成员方法中,可以用->
来访问非静态属性,其中->称为对象运算符
class Peo{
public $peoName = ‘people name’; //声明公有属性
private function showSelf(){ //声明私有方法
echo 'hello world!';
}
public function canUsedFunc(){ //声明公有方法
$this->showSelf();
} //$this是一个伪对象,表示当前正在调用这个方法的对象
}
$frank = new Peo(); //实例化一个Peo类的对象
echo $frank->peoName; //通过->访问对象的公有属性
$frank->peoName = ‘Frank’; //修改对象的公有属性
echo $frank->peoName;
$frank->canUsedFunc(); //调用对象的公有方法,间接执行私有方法
(4)php中的类常量与静态变量
语法:类常量由关键词const声明,而静态变量则使用关键词static声明
class 类名{
const 类常量(没有
开
头
)
=
简
单
值
;
s
t
a
t
i
c
静
态
变
量
名
(
有
开头) = 简单值; static 静态变量名(有
开头)=简单值;static静态变量名(有开头) = 简单值;
}
说明:
a.由const声明的类常量不允许发生任何改变,一经声明值即固定。
b.由static声明的静态变量的语句,则仅在类被声明的时候执行一次,但可以修改。
c.无论是const声明的类常量还是static声明的静态变量,两者的调用方式均为::调用
d.两者在调用的时候均可以不实例化对象直接通过类名调用。
class Peo{
const peoName = ‘people name’; //声明类常量
}
echo Peo::peoName; //不实例化也能直接通过类名访问
$frank = new Peo();
echo $frank::peoName; //实例化后可以通过对象访问
class Peo{
static $peoAge = 18; //声明静态变量
}
echo Peo::$peoAge; //直接通过类名访问
Peo::$peoAge++; //修改静态变量的值
echo Peo::$peoAge; //确认修改
$frank = new Peo(); //实例化对象,但静态变量声明语句不执行
echo $frank::$peoAge; //输出静态变量是刚才修改的值。
(5)php中类的构造函数
描述:构造函数是类在实例化对象的时候自动执行,用来帮助类去构造对象的函数。
php为所有的类都提供了一个和类名相同的隐藏构造函数。
可以通过显示编写或通过__construct函数来主动进行编辑。
语法:
class 类名{
//function __construct(){ 主动修改的代码 }
function 类名(){ 主动修改的代码 }
(6)php中类的继承
class Father{
public $pubPro = '父类公开的属性';
protected $protecPro = '父类受保护的属性';
private $priPro = '父类私有的属性';
public function fatherPublicPut(){
echo $this->pubPro."<br/>";
echo $this->protecPro."<br/>";
echo $this->priPro."<br/>";}
protected function fatherProtectPut(){
echo $this->pubPro."<br/>";
echo $this->protecPro."<br/>";
echo $this->priPro."<br/>";}
private function fatherPrivatePut(){
echo $this->pubPro."<br/>";
echo $this->protecPro."<br/>";
echo $this->priPro."<br/>";
}
}
class Son extends Father{
public function SonSelfPut(){
echo $this->pubPro."<br/>";
echo $this->protecPro."<br/>";
echo $this->priPro."<br/>";
}
结果