shi*_*hin 3 php inheritance autoload
在main.php,添加自动加载并创建一个新对象:
function __autoload($class) {
require_once($class . '.php');
}
...
$t = new Triangle($side1, $side2, $side3);
Run Code Online (Sandbox Code Playgroud)
在Triangle.php:
class Triangle extends Shape {...}
Run Code Online (Sandbox Code Playgroud)
Shape.php 是一个抽象类:
abstract class Shape {
abstract protected function get_area();
abstract protected function get_perimeter();
}
Run Code Online (Sandbox Code Playgroud)
我可以看到__autoload函数调用Triangle.php,但它是否同时调用Shape.php?
否(不是在精确的同一时间),但肯定(它会被加载,这样就可以了).
当你调用new Triangle它时会看到Triangle是一个尚未加载的类,所以它会调用__autoload().这将require_once是Triangle.php文件.
在解析Triangle.php时,它会看到还有另一个尚未加载的类(Shape),因此它会重复该过程.
简而言之,除了你所拥有的,你没有什么需要做的,但它通过了许多过程.
| 归档时间: |
|
| 查看次数: |
2571 次 |
| 最近记录: |