php学习记录(一)

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: 代表自身的对象,当方法中的参数名称与类名相同时,可区别二者, thisthis代表自身的对象
(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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值