电脑安全

您当前的位置:主页 > 电脑安全 >

PHP5.0对象模型探索之其它特性-网络编程

来源:[db:来源]标题:   类型    编辑:电脑技术全能网 时间:2019-09-20 18:32

原标题:PHP5.0对象模型探索之其它特性-网络编程
   范例唆使   各人都晓得,PHP是一种弱范例的言语。在应用变量前不须要界说,不须要申明变量的数据范例。这在编程中带来许多方便,但也带了一些隐患,特殊当变量的范例变更时。在PHP5增添了范例唆使,能够在履行进程中主动对类方式的参数范例停止推断。这相似于Java2中的RTTI,共同reflection能够让咱们很好地操纵工具。<?php interface Foo {  function a(Foo $foo); } interface Bar {  function b(Bar $bar); } class FooBar implements Foo, Bar {  function a(Foo $foo) {   // ...  }  function b(Bar $bar) {   // ...  } } $a = new FooBar; $b = new FooBar; $a->a($b); $a->b($b); ?>  在强范例言语中,全部变量的范例将在编译时停止检讨,而在PHP中应用范例唆使来对范例的检讨则产生在运转时。假如类方式参数的范例错误,将会报出相似“Fatal error: Argument 1 must implement interface Bar…”如许的过错信息。  以下代码:<?php function foo(ClassName $object) {  // ... } ?>  相称于:<?php function foo($object) {  if (!($object instanceof ClassName)) {   die("Argument 1 must be an instance of ClassName");  } } ?>  final要害字  PHP5中新增添了final要害字,它能够加在类或类方式前。标识为final的类方式,在子类中不能被覆写。标识为final的类,不能被继续,并且此中的方式都默许为final范例。  Final方式:<?php class Foo {  final function bar() {   // ...  } } ?>  Final类:<?php final class Foo { // class definition } // 上面这一行是过错的 // class Bork extends Foo {} ?>  工具复制  后面在内存治理部分说过,PHP5中默许经过援用通报工具。像应用$object2=$object1如许的方式复制出的工具是彼此关系的。假如咱们确切须要复制出一个值与本来雷同的工具而盼望目的工具与源工具没无关联(像一般变量那样经过值来通报),那末就须要应用clone要害字。假如还盼望在复制的同时变化源工具中的某些部分,能够在类中定一个__clone()函数,参加操纵。

上一篇:php 生成中文验证码程序-网络编程

下一篇:没有了