1.PHP函数:
(1)创建php函数:
<?php
function functionName()
{
// 要执行的代码
}
?>
要求:(1).函数的名称应该提示出它的功能
(2).函数名称以字母或下划线开头(不能以数字开头)
2.PHP 函数 - 添加参数
function functionName($a,$b)
{
要执行的代码
}
3.PHP函数-返回值
<?php
function add($x,$y)
{
$total=$x+$y;
return $total;
}
echo "1 + 16 = " . add(1,16);
?>
注:返回时应使用return语句
2.字符串:
(1)字符串的定义使用
<?php
$str="abcdef";
echo $str;
?>
(2)字符串的并置使用(字符串的拼接):
<?php
$txt1="Hello world!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2;
?>
输出Hello world!What a nice day!
(3)字符串长度函数:strlen()
<?php
echo strlen("abcdef");
?>
输出的结果为6
(4)PHP strpos() 函数
strpos() 函数用于在字符串内查找一个字符或一段指定的文本。
例如:
<?php
echo strpos("Hello world!","world");
?>
此时输出结果为6(字符串首个字符为第0个字符)
3.PHP数组:
(1):
<?php
$arr=array("ab","cd","ef");
echo "I like " . $arr[0] . ", " . $arr[1] . " and " . $arr[2] . ".";
?>
(2)在php中创建数组:
$arr={"ab","bc","cd"};(此方法为自动分配id键)
$arr[0]="ab";
$arr[1]="bc";
$arr[2]="cd";
此方法为人工分配id键
(3)获取数组长度的函数-count()函数
<?php
$arr=array("ab","bc","cd");
echo count($arr);
?>
如果想要遍历并打印数值数组中的所有值,可以使用 for 循环。
(4)PHP 关联数组
关联数组是使用您分配给数组的指定的键的数组。
创建方法也为自动分配和人工分配id键
例如:
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
or:
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
(5)遍历关联数组:
使用foreach循环,例如:
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
4.PHP日期和时间:
(1):PHP date() 函数:
此函数用于格式化时间/日期。
语法:string date ( string $format [, int $timestamp ] )
参数format:必需。规定时间戳的格式。
参数timestamp: 可选。规定时间戳。默认是当前的日期和时间。
(2):获得简单的日期:
date() 函数的格式参数是必需的,它们规定如何格式化日期或时间。
下面列出了一些常用于日期的字符:
d - 表示月里的某天(01-31)
m - 表示月(01-12)
Y - 表示年(四位数)
1 - 表示周里的某天
其他字符,比如 “/”, “.” 或 “-” 也可被插入字符中,以增加其他格式。
下面的例子用三种不同方法格式今天的日期:
<?php
echo "今天是 " . date("Y/m/d") . "<br>";
echo "今天是 " . date("Y.m.d") . "<br>";
echo "今天是 " . date("Y-m-d") . "<br>";
echo "今天是 " . date("l");
?>
输出的结果为:今天是 2020/04/17
今天是 2020.04.17
今天是 2020-04-17
今天是 Friday
(3)PHP提示-自动版权年份:
例如:
<!DOCTYPE html>
<html>
<body>
版权所有 2008-<?php echo date("Y")?>
</body>
</html>
输出的结果为:版权所有 2008-2020
(4)获得简单的时间:
下面是常用于时间的字符:
h - 带有首位零的 12 小时小时格式
i - 带有首位零的分钟
s - 带有首位零的秒(00 -59)
a - 小写的午前和午后(am 或 pm)
下面的例子以指定的格式输出当前时间:
<?php
echo "现在时间是 " . date("h:i:sa");
?>
运行的结果为:06:07:19pm(此结果为当时的时间)
注释:请注意 PHP date() 函数会返回服务器的当前日期/时间!
(5)获得时区:
如果从代码返回的不是正确的时间,有可能是因为您的服务器位于其他国家或者被设置为不同时区。
因此,如果您需要基于具体位置的准确时间,您可以设置要用的时区。
下面的例子把时区设置为 “Asia/Shanghai”,然后以指定格式输出当前时间:
<?php
date_default_timezone_set("Asia/Shanghai");
echo "当前时间是 " . date("h:i:sa");
?>
输出的结果为:当前时间是 06:09:35pm
(6)通过PHP mktime()创建日期:
date() 函数中可选的时间戳参数规定时间戳。如果您未规定时间戳,将使用当前日期和时间(正如上例中那样)。
mktime() 函数返回日期的 Unix 时间戳。Unix 时间戳包含 Unix 纪元(1970 年 1 月 1 日 00:00:00 GMT)与指定时间之间的秒数。
语法为:mktime(hour,minute,second,month,day,year);
例如:
<?php
$d=mktime(9, 12, 31, 6, 10, 2015);
echo "创建日期是 " . date("Y-m-d h:i:sa", $d);
?>
此例的输出结果为:创建日期是 2015-06-10 09:12:31am
(7)通过 PHP strtotime() 用字符串来创建日期:
PHP strtotime() 函数用于把人类可读的字符串转换为 Unix 时间。
语法为:strtotime(time,now);
例如:
<?php
$d=strtotime("10:38pm April 15 2015");
echo "创建日期是 " . date("Y-m-d h:i:sa", $d);
?>
结果为:创建日期是 2015-04-15 10:38:00pm
PHP中关于字符串转换为日期是十分灵活的,例如:
<?php
$d=strtotime("tomorrow");
echo date("Y-m-d h:i:sa", $d) . "<br>";
$d=strtotime("next Saturday");
echo date("Y-m-d h:i:sa", $d) . "<br>";
$d=strtotime("+3 Months");
echo date("Y-m-d h:i:sa", $d) . "<br>";
?>
此时的结果为:2020-04-18 12:00:00am
2020-04-18 12:00:00am
2020-07-17 06:14:46pm
注:此函数并非完美的函数,输出的结果可能有问题,所以输入时应仔细检查输入的字符串。
5.PHP面向对象:
(1):PHP类定义:
<?php
class phpClass {
var $var1;
var $var2 = "constant string";
function myfunc ($arg1, $arg2) {
[..]
}
[..]
}
?>
1.类使用class关键词加类名来定义
2.类名后面的大括号内可以定义变量和对应的方法
3.类的变量使用 var 来声明, 变量也可以初始化值
4.函数定义类似 PHP 函数的定义,但函数只能通过该类及其实例化的对象访问。
(2)
t
h
i
s
:
代
表
自
身
的
对
象
,
当
方
法
中
的
参
数
名
称
与
类
名
相
同
时
,
可
区
别
二
者
,
this: 代表自身的对象,当方法中的参数名称与类名相同时,可区别二者,
this:代表自身的对象,当方法中的参数名称与类名相同时,可区别二者,this代表自身的对象
(3)PHP创建对象:
例如:
&str = new Site;
1.调用成员方法,通过对象名->方法名进行调用
(4)PHP构造函数:
构造函数是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,在创建对象的语句中与 new 运算符一起使用。
(5)继承:
PHP中用extends来继承父类
例如
class Child extends Parent{
}
注:PHP不支持多继承
(6)方法重写:类似于java中的重载;
如果子类从父类继承来的方法不方便使用,可以使用override来进行对此方法的覆盖。
(7)访问控制:
1.public:表示公有的,可用来修饰变量和方法,也可以用来修饰类
2.private:表示私有的,只能在自己的类里面使用
3.protected:表示受保护的,受保护的类成员则可以被其自身以及其子类和父类访问。(此访问控制符专用于继承)
(8)接口:通过interface关键字来定义。
1.声明一个接口:
interface iTemplate{
}
2.接口的实现:
例如:
class Template implements iTemplate
此时用implement来接入实现类
注:1.类中必须实现接口中定义的所有方法
2.类可以实现多个接口,用逗号来分隔多个接口的名称。
(9)常量:
可以把在类中始终保持不变的值定义为常量。在定义和使用常量的时候不需要使用 $ 符号。常量的值必须是一个定值,不能是变量,类属性,数学运算的结果或函数调用。
(10)抽象类:
任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。
定义为抽象的类不能被实例化。
被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。
继承一个抽象类的时候,子类必须定义父类中的所有抽象方法;另外,这些方法的访问控制必须和父类中一样(或者更为宽松)。例如某个抽象方法被声明为受保护的,那么子类中实现的方法就应该声明为受保护的或者公有的,而不能定义为私有的。
此外,子类方法可以包含父类抽象方法中不存在的可选参数。
例如,子类定义了一个可选参数,而父类抽象方法的声明里没有,则也是可以正常运行的。
(11)Static 关键字:
声明类属性或方法为 static(静态),就可以不实例化类而直接访问。
静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。
由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法中不可用。
静态属性不可以由对象通过 -> 操作符来访问。
自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字 self,parent 或 static。
(12)Final 关键字:
PHP 5 新增了一个 final 关键字。如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。
(13)调用父类构造方法:
PHP 不会在子类的构造方法中自动的调用父类的构造方法。要执行父类的构造方法,需要在子类的构造方法中调用 parent::__construct() 。
例如:
<?php
class BaseClass {
function __construct() {
print "BaseClass 类中构造方法" . PHP_EOL;
}
}
class SubClass extends BaseClass {
function __construct() {
parent::__construct(); // 子类构造方法不能自动调用父类的构造方法
print "SubClass 类中构造方法" . PHP_EOL;
}
}
class OtherSubClass extends BaseClass {
// 继承 BaseClass 的构造方法
}
// 调用 BaseClass 构造方法
$obj = new BaseClass();
// 调用 BaseClass、SubClass 构造方法
$obj = new SubClass();
// 调用 BaseClass 构造方法
$obj = new OtherSubClass();
?>
以上程序的输出结果为:
BaseClass 类中构造方法
BaseClass 类中构造方法
SubClass 类中构造方法
BaseClass 类中构造方法
6.变量:
(1)定义:变量是存储信息的容器。
(2)实例:
<?php
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>
次例的结果为:11
注:在PHP中,x,y,z被称为变量。
(3)PHP变量:
正如代数,PHP 变量可用于保存值(x=5)和表达式(z=x+y)。
变量的名称可以很短(比如 x 和 y),也可以取更具描述性的名称(比如 carname、total_volume)。
PHP 变量规则:
变量以 $ 符号开头,其后是变量的名称
变量名称必须以字母或下划线开头
变量名称不能以数字开头
变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
注释:PHP 变量名称对大小写敏感!
(4)创建变量:
PHP 没有创建变量的命令。
变量会在首次为其赋值时被创建。例如:
<?php
$txt="Hello world!";
$x=5;
$y=10.5;
?>
所以说,PHP是一门类型松散的语言,PHP会根据变量的值,自动把变量转换为正确的数据类型。
(5)变量的作用域:
1.函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
2.函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
3.global 关键词用于在函数内访问全局变量。
例如:
<?php
$x=5; // 全局作用域
function myTest() {
$y=10; // 局部作用域
echo "<p>测试函数内部的变量:</p>";
echo "变量 x 是:$x";
echo "<br>";
echo "变量 y 是:$y";
}
myTest();
echo "<p>测试函数之外的变量:</p>";
echo "变量 x 是:$x";
echo "<br>";
echo "变量 y 是:$y";
?>
运行的结果为:
在函数内部测试变量:
变量 x 是:
变量 y 是:10
在函数之外测试变量:
变量 x 是:5
变量 y 是:
<?php
$x=5;
$y=10;
function myTest() {
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; // 输出 15
?>
结果为:15
PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。
上面的例子可以这样重写:
<?php
$x=5;
$y=10;
function myTest() {
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
myTest();
echo $y; // 输出 15
?>
(6)static 关键词:
通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作。
要完成这一点,请在您首次声明变量时使用 static 关键词:
例如:
<?php
function myTest() {
static $x=0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
结果为:
0
1
2