DDR爱好者之家 Design By 杰米
1. 数组
PHP的数组其实是一个关联数组,或者说是哈希表。PHP不需要预先声明数组的大小,可以用直接赋值的方式来创建数组。例如:
//最传统,用数字做键,赋值
$state[0]="Beijing";
$state[1]="Hebei";
$state[2]="Tianjin";
//如果键是递增的数字,则可以省略
$city[]="Shanghai";
$city[]="Tianjin";
$city[]="Guangzhou";
//用字符串做键
$capital["China"]="Beijing";
$capital["Japan"]="Tokyo";
用array()来创建数组会更加方便一点,可以将数组元素作为array的参数传递给他,也可以用=>运算符创建关联数组。例如:
$p=array(1,3,5,7);
$capital=array(“China”=>”Beijing”, “Japan=>”Tokyo”);
array其实是一种语法结构,而不是函数。和array类似,还有一个list(),它可以用来提取数组中的值,并给多个变量赋值。例如:
list($s,$t)=$city;
echo $s,' ',$t;
输出结果:Shanghai Tianjin
注意,list方法只能用于由数字索引的数组。
PHP内建了一些常用的数组处理函数,具体可以参考手册。常用的函数举例如下,count或者sizeof可以得到数组的长度,array_merge 可以合并两个,或者多个数组,array_push(pop)可以像堆栈一样使用数组。
复制代码 代码如下:
<?php
$state[0]="Beijing";
$state[1]="Hebei";
$state[2]="Tianjin";
$city[]="Shanghai";
$city[]="Tianjin";
$city[]="Guangzhou";
$capital["China"]="Beijing";
$capital["Japan"]="Tokyo";
echo count($city),'<br/>';
array_push($capital,"Paris");
$newarray=array_merge($city,$capital);
foreach($newarray as $elem)
echo $elem.'<br/>';
?>
输出结果为:
3
Shanghai
Tianjin
Guangzhou
Beijing
Tokyo
Paris
2. 类和对象
PHP5开始对面向对象编程有了很好的支持。PHP中的类的概念和其他面向对象的语言比如C#是十分相似的,它也是一个值和方法的聚合体,使用class关键字定义。例如:
复制代码 代码如下:
<?php
class AuthUser {
protected $userName;
protected $password;
public function __construct($userName,$password) {
$this->userName=$userName;
$this->password=$password;
}
public function GetUserName() {
return $userName;
}
public function ChangePassword($old,$new) {
if($this->password==$old) {
$this->password=$new;
return true;
}else
return false;
}
public function Login($password) {
return $this->password==$password;
}
public static function CreateUser($userName,$password) {
$user=new AuthUser($userName,$password);
return $user;
}
}
$user=AuthUser::CreateUser("Admin","123");
echo $user->GetUserName();
if($user->ChangePassword('abc', 'new'))
echo 'ChangePassword success';
else
echo 'Change Password fail';
$user->ChangePassword("123", "321");
if($user->Login("321"))
echo "Login";
else
echo "Login fail";
?>
上面是一个虽然没有什么用但是语法结构上较为完整的类。首先使用class关键字定义类的名字,内部可以定义字段和方法。字段和方法的修饰词可以是private,protected,public 和 final(仅方法有)。其含义和其它语言一致。不再赘述。不同的地方在于,PHP不支持函数的重载。另外,PHP5的构造函数的定义是__construct,注意前缀是两个下划线。PHP4的构造函数的定义和其它语言一致,是和类名一样的函数,PHP5也兼容这种写法。PHP5还支持析构函数,名字是__destruct。在函数内部,可以使用$this变量来获得当前对象的引用。 PHP也支持静态函数,同样是使用static关键字修饰。示例中最后一个函数就静态函数。静态函数不能通过类的实例引用。
类的定义下面是使用类的代码示例,PHP也是通过new关键字来实例化一个类。通过->运算符来引用对象的方法。注意其静态类的引用方法是::,这是和C++一致的。
下面再简单介绍下类的继承。PHP中使用extends关键字来实现类的继承,这是和Java一致的:
复制代码 代码如下:
<?php
class BaseClass {
function __construct() {
print "In BaseClass constructor\n";
}
}
class SubClass extends BaseClass {
function __construct() {
parent::__construct();
print "In SubClass constructor\n";
}
}
$obj = new BaseClass();
$obj = new SubClass();
?>
输出的结果是: In BaseClass constructor In BaseClass constructor In SubClass constructor
要注意,PHP的子类的构造函数不会自动调用父类的构造函数,必须在程序中显式地调用。使用parent关键字可以得到父类的引用。另外,由于PHP本身是弱类型的,所以“多态“的概念也不存在了,实际上,它永远都是多态的。
接口
接口定义了一组方法,但不实现他们。其语法为:
interface IInterfaceName
{
//常量、函数定义
}类利用implements关键字来表面实现某个接口,这和Java是一致的。
复制代码 代码如下:
<?php
interface IAddable{
function Add($something);
}
class AddClass implements IAddable
{
private $data;
function AddClass($num){
$data=$num;
}
public function Add($something)
{
$data+=$something;
return $data;
}
}
$a=new AddClass (5);
echo $a instanceof IAddable;
echo $a->Add(10);
?>
其中 instanceof关键字是PHP5新增的,用来判断一个对象是不是某个类的实例,或者它的类型是不撒实现了某个接口。
PHP的数组其实是一个关联数组,或者说是哈希表。PHP不需要预先声明数组的大小,可以用直接赋值的方式来创建数组。例如:
//最传统,用数字做键,赋值
$state[0]="Beijing";
$state[1]="Hebei";
$state[2]="Tianjin";
//如果键是递增的数字,则可以省略
$city[]="Shanghai";
$city[]="Tianjin";
$city[]="Guangzhou";
//用字符串做键
$capital["China"]="Beijing";
$capital["Japan"]="Tokyo";
用array()来创建数组会更加方便一点,可以将数组元素作为array的参数传递给他,也可以用=>运算符创建关联数组。例如:
$p=array(1,3,5,7);
$capital=array(“China”=>”Beijing”, “Japan=>”Tokyo”);
array其实是一种语法结构,而不是函数。和array类似,还有一个list(),它可以用来提取数组中的值,并给多个变量赋值。例如:
list($s,$t)=$city;
echo $s,' ',$t;
输出结果:Shanghai Tianjin
注意,list方法只能用于由数字索引的数组。
PHP内建了一些常用的数组处理函数,具体可以参考手册。常用的函数举例如下,count或者sizeof可以得到数组的长度,array_merge 可以合并两个,或者多个数组,array_push(pop)可以像堆栈一样使用数组。
复制代码 代码如下:
<?php
$state[0]="Beijing";
$state[1]="Hebei";
$state[2]="Tianjin";
$city[]="Shanghai";
$city[]="Tianjin";
$city[]="Guangzhou";
$capital["China"]="Beijing";
$capital["Japan"]="Tokyo";
echo count($city),'<br/>';
array_push($capital,"Paris");
$newarray=array_merge($city,$capital);
foreach($newarray as $elem)
echo $elem.'<br/>';
?>
输出结果为:
3
Shanghai
Tianjin
Guangzhou
Beijing
Tokyo
Paris
2. 类和对象
PHP5开始对面向对象编程有了很好的支持。PHP中的类的概念和其他面向对象的语言比如C#是十分相似的,它也是一个值和方法的聚合体,使用class关键字定义。例如:
复制代码 代码如下:
<?php
class AuthUser {
protected $userName;
protected $password;
public function __construct($userName,$password) {
$this->userName=$userName;
$this->password=$password;
}
public function GetUserName() {
return $userName;
}
public function ChangePassword($old,$new) {
if($this->password==$old) {
$this->password=$new;
return true;
}else
return false;
}
public function Login($password) {
return $this->password==$password;
}
public static function CreateUser($userName,$password) {
$user=new AuthUser($userName,$password);
return $user;
}
}
$user=AuthUser::CreateUser("Admin","123");
echo $user->GetUserName();
if($user->ChangePassword('abc', 'new'))
echo 'ChangePassword success';
else
echo 'Change Password fail';
$user->ChangePassword("123", "321");
if($user->Login("321"))
echo "Login";
else
echo "Login fail";
?>
上面是一个虽然没有什么用但是语法结构上较为完整的类。首先使用class关键字定义类的名字,内部可以定义字段和方法。字段和方法的修饰词可以是private,protected,public 和 final(仅方法有)。其含义和其它语言一致。不再赘述。不同的地方在于,PHP不支持函数的重载。另外,PHP5的构造函数的定义是__construct,注意前缀是两个下划线。PHP4的构造函数的定义和其它语言一致,是和类名一样的函数,PHP5也兼容这种写法。PHP5还支持析构函数,名字是__destruct。在函数内部,可以使用$this变量来获得当前对象的引用。 PHP也支持静态函数,同样是使用static关键字修饰。示例中最后一个函数就静态函数。静态函数不能通过类的实例引用。
类的定义下面是使用类的代码示例,PHP也是通过new关键字来实例化一个类。通过->运算符来引用对象的方法。注意其静态类的引用方法是::,这是和C++一致的。
下面再简单介绍下类的继承。PHP中使用extends关键字来实现类的继承,这是和Java一致的:
复制代码 代码如下:
<?php
class BaseClass {
function __construct() {
print "In BaseClass constructor\n";
}
}
class SubClass extends BaseClass {
function __construct() {
parent::__construct();
print "In SubClass constructor\n";
}
}
$obj = new BaseClass();
$obj = new SubClass();
?>
输出的结果是: In BaseClass constructor In BaseClass constructor In SubClass constructor
要注意,PHP的子类的构造函数不会自动调用父类的构造函数,必须在程序中显式地调用。使用parent关键字可以得到父类的引用。另外,由于PHP本身是弱类型的,所以“多态“的概念也不存在了,实际上,它永远都是多态的。
接口
接口定义了一组方法,但不实现他们。其语法为:
interface IInterfaceName
{
//常量、函数定义
}类利用implements关键字来表面实现某个接口,这和Java是一致的。
复制代码 代码如下:
<?php
interface IAddable{
function Add($something);
}
class AddClass implements IAddable
{
private $data;
function AddClass($num){
$data=$num;
}
public function Add($something)
{
$data+=$something;
return $data;
}
}
$a=new AddClass (5);
echo $a instanceof IAddable;
echo $a->Add(10);
?>
其中 instanceof关键字是PHP5新增的,用来判断一个对象是不是某个类的实例,或者它的类型是不撒实现了某个接口。
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年11月26日
2024年11月26日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]