一步一步学习PHP(5) 类和对象
程序员文章站
2023-08-19 21:02:20
在这一节中,我们就来看看在php中如何创建一个类和对象。 1. 创建类 在php中,创建一个类和在c#/java中基本类似,闲话少说,给大家看个最简单的例子: 复制代码 代...
在这一节中,我们就来看看在php中如何创建一个类和对象。
1. 创建类
在php中,创建一个类和在c#/java中基本类似,闲话少说,给大家看个最简单的例子:
<?php
class people
{
var $name;
public function getname()
{
return $this->name;
}
public function setname($name)
{
$this->name=$name;
}
}
$p=new people();
$p->setname("kym");
echo($p->getname());
?>
这里,我们就创建一个people的类,在这里有四个要点说明一下:
第一个是在php中,访问属性(或者方法)不是用我们所常用的点运算符(.),而是用->。
第二个是在php中,方法需要用function在标识,这点于javascript很类似。
第三点是当我们声明一个变量时,需要用var,这点也与javascript非常类似。
第四点是在php中,也有着public ,protected,private三个与c#同样的访问修饰符,不再赘述。
在这里,我们发现,我们可以用$p直接访问$name属性,那么我们需要对其进行控制,方法如下:
class people
{
private $name;
public function getname()
{
return $this->name;
}
public function setname($name)
{
$this->name=$name;
}
}
这时,我们在外界就无法访问到$name属性了。
还记得我们在上文中提到了可变函数么?在这里我们一样可以用可变函数来访问对象的方法:
<?php
class people
{
private $name;
public function getname()
{
return $this->name;
}
public function setname($name)
{
$this->name=$name;
}
}
$p=new people();
$get="getname";
$set="setname";
$p->$set("kym");
echo($p->$get());
?>
2. 静态方法(属性)
在php中声明静态方法(也可称之为类方法)与c#中是十分类似的。
<?php
class database
{
public static function createconnection()
{
echo("success");
}
}
database::createconnection();
?>
同理,声明静态属性也是一样。
<?php
class database
{
static $connectionstring="http://127.0.0.1";
public static function createconnection()
{
echo("success");
}
}
echo(database::$connectionstring);
database::createconnection();
?>
3. 类常量
在c#中,我们用const来标识常量,在php中也是一样。
<?php
class database
{
const author="kym";
static $connectionstring="http://127.0.0.1";
public static function createconnection()
{
echo("success");
}
}
echo(database::author);
echo(database::$connectionstring);
database::createconnection();
?>
4. 访问静态变量
我们知道,静态属性(方法)属于类本身,而变量(方法)属于对象本身,而类本身先于对象而存在,那么我们如何来在动态方法中访问静态的变量(方法)呢?在php中,为我们提供了self关键字。
<?php
class database
{
const author="kym";
static $connectionstring="http://127.0.0.1";
public static function createconnection()
{
echo(self::$connectionstring." success");
}
}
echo(database::author);
echo(database::$connectionstring);
database::createconnection();
?>
1. 创建类
在php中,创建一个类和在c#/java中基本类似,闲话少说,给大家看个最简单的例子:
复制代码 代码如下:
<?php
class people
{
var $name;
public function getname()
{
return $this->name;
}
public function setname($name)
{
$this->name=$name;
}
}
$p=new people();
$p->setname("kym");
echo($p->getname());
?>
这里,我们就创建一个people的类,在这里有四个要点说明一下:
第一个是在php中,访问属性(或者方法)不是用我们所常用的点运算符(.),而是用->。
第二个是在php中,方法需要用function在标识,这点于javascript很类似。
第三点是当我们声明一个变量时,需要用var,这点也与javascript非常类似。
第四点是在php中,也有着public ,protected,private三个与c#同样的访问修饰符,不再赘述。
在这里,我们发现,我们可以用$p直接访问$name属性,那么我们需要对其进行控制,方法如下:
复制代码 代码如下:
class people
{
private $name;
public function getname()
{
return $this->name;
}
public function setname($name)
{
$this->name=$name;
}
}
这时,我们在外界就无法访问到$name属性了。
还记得我们在上文中提到了可变函数么?在这里我们一样可以用可变函数来访问对象的方法:
复制代码 代码如下:
<?php
class people
{
private $name;
public function getname()
{
return $this->name;
}
public function setname($name)
{
$this->name=$name;
}
}
$p=new people();
$get="getname";
$set="setname";
$p->$set("kym");
echo($p->$get());
?>
2. 静态方法(属性)
在php中声明静态方法(也可称之为类方法)与c#中是十分类似的。
复制代码 代码如下:
<?php
class database
{
public static function createconnection()
{
echo("success");
}
}
database::createconnection();
?>
同理,声明静态属性也是一样。
复制代码 代码如下:
<?php
class database
{
static $connectionstring="http://127.0.0.1";
public static function createconnection()
{
echo("success");
}
}
echo(database::$connectionstring);
database::createconnection();
?>
3. 类常量
在c#中,我们用const来标识常量,在php中也是一样。
复制代码 代码如下:
<?php
class database
{
const author="kym";
static $connectionstring="http://127.0.0.1";
public static function createconnection()
{
echo("success");
}
}
echo(database::author);
echo(database::$connectionstring);
database::createconnection();
?>
4. 访问静态变量
我们知道,静态属性(方法)属于类本身,而变量(方法)属于对象本身,而类本身先于对象而存在,那么我们如何来在动态方法中访问静态的变量(方法)呢?在php中,为我们提供了self关键字。
复制代码 代码如下:
<?php
class database
{
const author="kym";
static $connectionstring="http://127.0.0.1";
public static function createconnection()
{
echo(self::$connectionstring." success");
}
}
echo(database::author);
echo(database::$connectionstring);
database::createconnection();
?>
上一篇: PHP 截取字符串函数整理(支持gb2312和utf-8)
下一篇: 假戏真做真笑话