第1次亲密接触PHP5(2)
php5 接触 亲密
2023-06-13 09:13:43 时间
接上篇,继续硬着头皮往下翻。。。。:)
类型指示
在PHP5,你可以在一个类的方法中指明其参数必须为一个类的实例:
Example10:类型实例
<?php
classfoo{
//code...
}
classbar{
publicfunctionprocess_a_foo(foo$foo){
//Somecode
}
}
$b=newbar();
$f=newfoo();
$b->process_a_foo($f);
?>
可以看到,在变量前指定一个类名,让PHP5知道这个变量将是一个类的实例
静态成员
静态成员和静态方法在OOP中一般称为"类变量"和"类方法"。
一个"类方法"可以在对象没有被实例化的时候调用
一个"类变量"可以在对象没有被实例化的时候访问(也不需要对象的方法来调用)
Example11:类变量和类方法
<?php
classcalculator{
staticpublic$pi=3.14151692;
staticpublicfunctionadd($x,$y){
return$x+$y;
}
}
$s=calculator::$pi;
$result=calculator::add(3,7);
print("$result");
?>
*异常处理
异常处理是开发语言中公认的处理异常错误的方法,如在JAVA和C++中。
PHP5用"try"和"catch"关键字来捕获异常。
Example12:异常处理
<?php
classfoo{
functiondivide($x,$y){
if($y==0)thrownewException("cannotdividebyzero");
return$x/$y;
}
}
$x=newfoo();
try{
$x->divide(3,0);
}catch(Exception$e){
echo$e->getMessage();
echo"\n<br/>\n";
//Somecatastrophicmeasurehere
}
?>
可以看出,"try"表示的是执行代码的地方,当有错误的时候执行"catch"区域的代码。
在"catch"区域你应当指明执行异常的对象,这样可以使我们的结构更清晰
自定义异常处理
你可以在程序中定义自己习惯的捕获异常错误的代码。
非常简单,你仅仅需要继承一个异常类,在这个类中需要一个构造器和一个叫getMessage的方法而已:
Example13:自定义异常类
<?php
classWeirdProblemextendsException{
private$data;
functionWeirdProblem($data){
parent::exception();
$this->data=$data;
}
functiongetMessage(){
return$this->data."causedaweirdexception!";
}
}
?>
现在就可以用"thrownewWeirdProblem($foo)"来抛出异常。如果在try{}这样的区域中出现异常,PHP5就会跳入
catch区域来抛出异常。
名称空间
"名称空间"可以让你方便地调用一组类或方法:
Example14:名称空间
<?php
namespaceMath{
classComplex{
//...code...
function__construct(){
print("hey");
}
}
}
$m=newMath::Complex();
?>
注:在实际应用中,你可以在不同的名称空间里定义同名的类来完成不同的任务(但接口要相同)
<翻译完毕>
终天蹩手蹩脚地翻译完了,有些翻译不正确的地方,如术语、对原文的理解,敬请一一指出,共同完善,共同开始PHP5的学习、探讨。。。
类型指示
在PHP5,你可以在一个类的方法中指明其参数必须为一个类的实例:
Example10:类型实例
<?php
classfoo{
//code...
}
classbar{
publicfunctionprocess_a_foo(foo$foo){
//Somecode
}
}
$b=newbar();
$f=newfoo();
$b->process_a_foo($f);
?>
可以看到,在变量前指定一个类名,让PHP5知道这个变量将是一个类的实例
静态成员
静态成员和静态方法在OOP中一般称为"类变量"和"类方法"。
一个"类方法"可以在对象没有被实例化的时候调用
一个"类变量"可以在对象没有被实例化的时候访问(也不需要对象的方法来调用)
Example11:类变量和类方法
<?php
classcalculator{
staticpublic$pi=3.14151692;
staticpublicfunctionadd($x,$y){
return$x+$y;
}
}
$s=calculator::$pi;
$result=calculator::add(3,7);
print("$result");
?>
*异常处理
异常处理是开发语言中公认的处理异常错误的方法,如在JAVA和C++中。
PHP5用"try"和"catch"关键字来捕获异常。
Example12:异常处理
<?php
classfoo{
functiondivide($x,$y){
if($y==0)thrownewException("cannotdividebyzero");
return$x/$y;
}
}
$x=newfoo();
try{
$x->divide(3,0);
}catch(Exception$e){
echo$e->getMessage();
echo"\n<br/>\n";
//Somecatastrophicmeasurehere
}
?>
可以看出,"try"表示的是执行代码的地方,当有错误的时候执行"catch"区域的代码。
在"catch"区域你应当指明执行异常的对象,这样可以使我们的结构更清晰
自定义异常处理
你可以在程序中定义自己习惯的捕获异常错误的代码。
非常简单,你仅仅需要继承一个异常类,在这个类中需要一个构造器和一个叫getMessage的方法而已:
Example13:自定义异常类
<?php
classWeirdProblemextendsException{
private$data;
functionWeirdProblem($data){
parent::exception();
$this->data=$data;
}
functiongetMessage(){
return$this->data."causedaweirdexception!";
}
}
?>
现在就可以用"thrownewWeirdProblem($foo)"来抛出异常。如果在try{}这样的区域中出现异常,PHP5就会跳入
catch区域来抛出异常。
名称空间
"名称空间"可以让你方便地调用一组类或方法:
Example14:名称空间
<?php
namespaceMath{
classComplex{
//...code...
function__construct(){
print("hey");
}
}
}
$m=newMath::Complex();
?>
注:在实际应用中,你可以在不同的名称空间里定义同名的类来完成不同的任务(但接口要相同)
<翻译完毕>
终天蹩手蹩脚地翻译完了,有些翻译不正确的地方,如术语、对原文的理解,敬请一一指出,共同完善,共同开始PHP5的学习、探讨。。。
相关文章
- 高性能php7_php5升级到php7
- CentOS 7上为PHP5安装suPHP的方法(彭哥)
- Ubuntu 12.04 server 安装 Apache2+PHP5+MySQL
- 从PHP5到MySQL:开启新的Web开发旅程。(php5mysql)
- php5实现连接MSSQL的简单方式(php5 连接mssql)
- PHP5新特性:更加面向对象化的PHP
- 理解PHP5中static和const关键字的区别
- 不错的PHP学习之php4与php5之间会穿梭一点点感悟
- PHP5面向对象程序设计
- 兼容PHP5的PHP目录管理函数库
- PHP5中使用DOM控制XML实现代码
- PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
- CentOS6.4安装配置LAMP服务器(Apache+PHP5+MySQL)
- PHP5中实现多态的两种方法实例分享