当前位置: 编程技术>php
本页文章导读:
▪通过具体程序来理解PHP里面的抽象类
当然,可能存在多个根类,用来实现不同的功能. 在一个良好设计的体系中,每个根类都应该有一个有用的接口, 可以被应用代码所使用. 如果我们的应用代码被设计成与根类一起工作,那么它也.........
▪认识并使用PHP超级全局变量
认识并使用PHP超级全局变量 超级全局变量也叫做预定义变量,是PHP系统中自带的变量,它可让你的程序设计更加的方便快捷。它的类型包括: $GLOBALS 包含一个引用指向每个当前脚本的全局.........
▪php 静态变量与自定义常量的使用方法
⚑ 静态变量的声明与使用 ⚑ 自定义常量的使用方式 什么是静态变量? 静态变量是指用static声明的变量,这种变量与局部变量的区别是,当静态变量离开了它的作用范围后,它的值不会自.........
[1]通过具体程序来理解PHP里面的抽象类
来源: 互联网 发布时间: 2013-11-30
当然,可能存在多个根类,用来实现不同的功能. 在一个良好设计的体系中,每个根类都应该有一个有用的接口, 可以被应用代码所使用. 如果我们的应用代码被设计成与根类一起工作,那么它也可以和任何一个从根类继承出来的子类合作.
抽象方法是就像子类中一般的方法的占位符(占个地方但不起作用),它与一般方法不同—没有任何代码. 如果类中存在一个或更多抽象方法, 那么这个类就成了抽象类. 你不能实例化抽象类. 你必须继承它们,然后实例化子类. 你也可以把抽象类看成是子类的一个模板.
如果你覆写所有的抽象方法, 子类就变成一个普通的类. 如果没有覆写所有方法, 子类仍是抽象的. 如果一个类中中包含有抽象方法(哪怕只有一个), 你必须声明这个类是抽象的, 在class关键字前加上abstract.
声明抽象方法的语法与声明一般方法不同. 抽象方法的没有像一般方法那样包含在大括号{}中的主体部份,并用分号;来结束.
在下面的程序文件中, 我们定义了一个含有getArea方法的类Shape. 但由于不知道形状不可能确定图形的面积,的确我们声明了getArea方法为抽象方法. 你不能实例化一个Shape对象,但你可以继承它或在一个表达式中使用它, 就像例6.13中那样.
如果你建立了一个只有抽象方法的类,你就定义了一个接口(interface). 为了说明这种情况, PHP中有interface 和implements关键字. 你可以用interface来代替抽象类, 用implements来代替extends来说明你的类定义或使用一个接口. 例如, 你可以写一个myClass implements myIterface. 这两种方法可以依个人偏爱来选择.
代码
/*注:
两种方法即指:
1. abstract class aaa{} (注意aaa中只有抽象方法,没有一般方法)
class bbb extends aaa{} (在bbb中覆写aaa中的抽象方法)
2. interface aaa{}
class bbb implements aaa{} (在bbb中覆写aaa中的抽象方法)
*/
<?php
//abstract root class 抽象根类
abstract class Shape
{
abstract function getArea(); //定义一个抽象方法
}
//abstract child class 抽象子类
abstract class Polygon extends Shape //多边形
{
abstract function getNumberOfSides();
}
//concrete class 实体类 三角形类
class Triangle extends Polygon
{
public $base;
public $height;
public function getArea() //覆写计算面积方法
{
return(($this->base * $this->height)/2);
}
public function getNumberOfSides() //覆写边数统计方法
{
return(3);
}
}
//concrete class 实体类四边形
class Rectangle extends Polygon
{
public $width;
public $height;
public function getArea()
{
return($this->width * $this->height);
}
public function getNumberOfSides()
{
return(4);
}
}
//concrete class 实体类 圆形
class Circle extends Shape
{
public $radius;
public function getArea()
{
return(pi() * $this->radius * $this->radius);
}
}
//concrete root class 定义一个颜色类
class Color
{
public $name;
}
$myCollection = array(); //建立形状的集合,放入数组
//make a rectangle
$r = new Rectangle;
$r->width = 5;
$r->height = 7;
$myCollection[] = $r;
unset($r);
//make a triangle
$t = new Triangle;
$t->base = 4;
$t->height = 5;
$myCollection[] = $t;
unset($t);
//make a circle
$c = new Circle;
$c->radius = 3;
$myCollection[] = $c;
unset($c);
//make a color
$c = new Color;
$c->name = "blue";
$myCollection[] = $c;
unset($c);
foreach($myCollection as $s)
{
if($s instanceof Shape) print("Area: ".$s->getArea()."<br>\n"); //如果$s是Shape类的实例
if($s instanceof Polygon) print("Sides: ".$s->getNumberOfSides()."<br>\n");
if($s instanceof Color) print("Color:".$s->name."<br>\n");
print("<br>\n");
}
?>
运行结果:
Area: 35
Sides: 4
Area: 10
Sides: 3
Area: 28.274333882308
Color:blue
抽象方法是就像子类中一般的方法的占位符(占个地方但不起作用),它与一般方法不同—没有任何代码. 如果类中存在一个或更多抽象方法, 那么这个类就成了抽象类. 你不能实例化抽象类. 你必须继承它们,然后实例化子类. 你也可以把抽象类看成是子类的一个模板.
如果你覆写所有的抽象方法, 子类就变成一个普通的类. 如果没有覆写所有方法, 子类仍是抽象的. 如果一个类中中包含有抽象方法(哪怕只有一个), 你必须声明这个类是抽象的, 在class关键字前加上abstract.
声明抽象方法的语法与声明一般方法不同. 抽象方法的没有像一般方法那样包含在大括号{}中的主体部份,并用分号;来结束.
在下面的程序文件中, 我们定义了一个含有getArea方法的类Shape. 但由于不知道形状不可能确定图形的面积,的确我们声明了getArea方法为抽象方法. 你不能实例化一个Shape对象,但你可以继承它或在一个表达式中使用它, 就像例6.13中那样.
如果你建立了一个只有抽象方法的类,你就定义了一个接口(interface). 为了说明这种情况, PHP中有interface 和implements关键字. 你可以用interface来代替抽象类, 用implements来代替extends来说明你的类定义或使用一个接口. 例如, 你可以写一个myClass implements myIterface. 这两种方法可以依个人偏爱来选择.
代码
代码如下:
/*注:
两种方法即指:
1. abstract class aaa{} (注意aaa中只有抽象方法,没有一般方法)
class bbb extends aaa{} (在bbb中覆写aaa中的抽象方法)
2. interface aaa{}
class bbb implements aaa{} (在bbb中覆写aaa中的抽象方法)
*/
<?php
//abstract root class 抽象根类
abstract class Shape
{
abstract function getArea(); //定义一个抽象方法
}
//abstract child class 抽象子类
abstract class Polygon extends Shape //多边形
{
abstract function getNumberOfSides();
}
//concrete class 实体类 三角形类
class Triangle extends Polygon
{
public $base;
public $height;
public function getArea() //覆写计算面积方法
{
return(($this->base * $this->height)/2);
}
public function getNumberOfSides() //覆写边数统计方法
{
return(3);
}
}
//concrete class 实体类四边形
class Rectangle extends Polygon
{
public $width;
public $height;
public function getArea()
{
return($this->width * $this->height);
}
public function getNumberOfSides()
{
return(4);
}
}
//concrete class 实体类 圆形
class Circle extends Shape
{
public $radius;
public function getArea()
{
return(pi() * $this->radius * $this->radius);
}
}
//concrete root class 定义一个颜色类
class Color
{
public $name;
}
$myCollection = array(); //建立形状的集合,放入数组
//make a rectangle
$r = new Rectangle;
$r->width = 5;
$r->height = 7;
$myCollection[] = $r;
unset($r);
//make a triangle
$t = new Triangle;
$t->base = 4;
$t->height = 5;
$myCollection[] = $t;
unset($t);
//make a circle
$c = new Circle;
$c->radius = 3;
$myCollection[] = $c;
unset($c);
//make a color
$c = new Color;
$c->name = "blue";
$myCollection[] = $c;
unset($c);
foreach($myCollection as $s)
{
if($s instanceof Shape) print("Area: ".$s->getArea()."<br>\n"); //如果$s是Shape类的实例
if($s instanceof Polygon) print("Sides: ".$s->getNumberOfSides()."<br>\n");
if($s instanceof Color) print("Color:".$s->name."<br>\n");
print("<br>\n");
}
?>
运行结果:
Area: 35
Sides: 4
Area: 10
Sides: 3
Area: 28.274333882308
Color:blue
[2]认识并使用PHP超级全局变量
来源: 互联网 发布时间: 2013-11-30
认识并使用PHP超级全局变量
超级全局变量也叫做预定义变量,是PHP系统中自带的变量,它可让你的程序设计更加的方便快捷。它的类型包括:
$GLOBALS
包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键名为全局变量的名称。从 PHP 3 开始存在 $GLOBALS 数组。
$_SERVER
变量由 web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组
$_GET
经由 URL 请求提交至脚本的变量。
$_POST
经由 HTTP POST 方法提交至脚本的变量。
$_COOKIE
经由 HTTP Cookies 方法提交至脚本的变量。
$_FILES
经由 HTTP POST 文件上传而提交至脚本的变量。
$_ENV
执行环境提交至脚本的变量。
$_REQUEST
经由 GET,POST 和 COOKIE 机制提交至脚本的变量。
$_SESSION
当前注册给脚本会话的变量。
具体这些信息在这里就不一一的交待了,大家可以新建一个PHP文件,在文件中写上以下代码。
<?php
phpinfo();
?>
并执行,你就可以看到以下画面
在这个页面当中,你就可以查看到系统当中存在的各种类型的超级全局变量,从而也可以去应用它了。
下面介绍一个例子,用一个PHP文件显示当前文件及当前服务器的IP地址。
代码如下:
<?php
echo "当前文件为".$_SERVER["PHP_SELF"];
echo "<br>";
echo "当前服务器的IP地址为:".$_SERVER["SERVER_ADDR"];
?>
通过上述例子,我们发现,预定义变量也就是超级全局变量在使用时无需定义(你可以通过phpinfo去查询),且以"$_"开头,变量名都是大写字母,用"[ ]"括住相应的参数。
到这里,有关PHP中的常量变量我们就介绍结束了。
麦哥的学校临近期末考试,估计接下来几天的更新不会太及时了。还望各位见谅!
超级全局变量也叫做预定义变量,是PHP系统中自带的变量,它可让你的程序设计更加的方便快捷。它的类型包括:
$GLOBALS
包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键名为全局变量的名称。从 PHP 3 开始存在 $GLOBALS 数组。
$_SERVER
变量由 web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组
$_GET
经由 URL 请求提交至脚本的变量。
$_POST
经由 HTTP POST 方法提交至脚本的变量。
$_COOKIE
经由 HTTP Cookies 方法提交至脚本的变量。
$_FILES
经由 HTTP POST 文件上传而提交至脚本的变量。
$_ENV
执行环境提交至脚本的变量。
$_REQUEST
经由 GET,POST 和 COOKIE 机制提交至脚本的变量。
$_SESSION
当前注册给脚本会话的变量。
具体这些信息在这里就不一一的交待了,大家可以新建一个PHP文件,在文件中写上以下代码。
代码如下:
<?php
phpinfo();
?>
并执行,你就可以看到以下画面
在这个页面当中,你就可以查看到系统当中存在的各种类型的超级全局变量,从而也可以去应用它了。
下面介绍一个例子,用一个PHP文件显示当前文件及当前服务器的IP地址。
代码如下:
代码如下:
<?php
echo "当前文件为".$_SERVER["PHP_SELF"];
echo "<br>";
echo "当前服务器的IP地址为:".$_SERVER["SERVER_ADDR"];
?>
通过上述例子,我们发现,预定义变量也就是超级全局变量在使用时无需定义(你可以通过phpinfo去查询),且以"$_"开头,变量名都是大写字母,用"[ ]"括住相应的参数。
到这里,有关PHP中的常量变量我们就介绍结束了。
麦哥的学校临近期末考试,估计接下来几天的更新不会太及时了。还望各位见谅!
[3]php 静态变量与自定义常量的使用方法
来源: 互联网 发布时间: 2013-11-30
⚑ 静态变量的声明与使用
⚑ 自定义常量的使用方式
什么是静态变量?
静态变量是指用static声明的变量,这种变量与局部变量的区别是,当静态变量离开了它的作用范围后,它的值不会自动消亡,而是继续存在,当下次再用到它的时候,可以保留最近一次的值。
下面举例:
<?php
function add()
{
static $i=0;
$i++;
echo $i;
}
add();
echo " ";
add();
?>
这段程序中,主要定义了一个函数add(),然后分两次调用add()。
如果用局部变量的方式来分工这段代码,两次的输出应该都是1。但实际输出却是1和2。
这是因为,变量i在声明的时候被加上了一个修饰符static,这就标志着i变量在add()函数内部就是一个静态变量了,具备记忆自身值的功能,当第一次调用add时,i由于自加变成了1,这个时候,i就记住自己不再是0,而是1了,当我们再次调用add时,i再一次自加,由1变成了2。由此,我们就可以看出静态变量的特性了。
什么是自定义常量?
所谓自定义常量,就是指用一个字符标识来代表另外一个对象,这个对象可以是一个数值,一个字符串,一个布尔值等等。它的定义与变量有着许多相似之处。只有一点不一样,那就是变量的值在程序运行过程中可以任意更改,而自定义常量一旦定义下来后,在程序运行中就再也不能修改了。
定义方式如下:
define("YEAR","2012");
使用define关键字来将2012这个字符串绑定到YEAR上来,以后在程序当中出现YEAR的地方就用2012来代替。一般情况下,我们定义常量时,常量名都使用大写字母。
例:
<?php
define("YEAR","2012");
define("MONTH","12");
define("DATE","21");
define("THING","Doomsday");
echo YEAR."-".MONTH."-".DATE." ".THING;
?>
这段程序中,定义了四个常量,分别是YEAR,MONTH,DATE,THING,它们对应的值分别是2012,12,21,Doomsday,当我们用echo将它们连起来显示时,与变量不同的地方就在于没有使用“$”。
它的运行结果是:2012-12-21 Doomsday。
⚑ 自定义常量的使用方式
什么是静态变量?
静态变量是指用static声明的变量,这种变量与局部变量的区别是,当静态变量离开了它的作用范围后,它的值不会自动消亡,而是继续存在,当下次再用到它的时候,可以保留最近一次的值。
下面举例:
代码如下:
<?php
function add()
{
static $i=0;
$i++;
echo $i;
}
add();
echo " ";
add();
?>
这段程序中,主要定义了一个函数add(),然后分两次调用add()。
如果用局部变量的方式来分工这段代码,两次的输出应该都是1。但实际输出却是1和2。
这是因为,变量i在声明的时候被加上了一个修饰符static,这就标志着i变量在add()函数内部就是一个静态变量了,具备记忆自身值的功能,当第一次调用add时,i由于自加变成了1,这个时候,i就记住自己不再是0,而是1了,当我们再次调用add时,i再一次自加,由1变成了2。由此,我们就可以看出静态变量的特性了。
什么是自定义常量?
所谓自定义常量,就是指用一个字符标识来代表另外一个对象,这个对象可以是一个数值,一个字符串,一个布尔值等等。它的定义与变量有着许多相似之处。只有一点不一样,那就是变量的值在程序运行过程中可以任意更改,而自定义常量一旦定义下来后,在程序运行中就再也不能修改了。
定义方式如下:
define("YEAR","2012");
使用define关键字来将2012这个字符串绑定到YEAR上来,以后在程序当中出现YEAR的地方就用2012来代替。一般情况下,我们定义常量时,常量名都使用大写字母。
例:
代码如下:
<?php
define("YEAR","2012");
define("MONTH","12");
define("DATE","21");
define("THING","Doomsday");
echo YEAR."-".MONTH."-".DATE." ".THING;
?>
这段程序中,定义了四个常量,分别是YEAR,MONTH,DATE,THING,它们对应的值分别是2012,12,21,Doomsday,当我们用echo将它们连起来显示时,与变量不同的地方就在于没有使用“$”。
它的运行结果是:2012-12-21 Doomsday。
最新技术文章: