作習慣了編譯語言,轉到php 使用 php的面向對象開發時候碰見一個挺彆扭的問題。在Php中引入對象 後 在調用過程當中還須要將對象所在的php文件php
require 到當前php文件
目前代碼結構
index.php
<?php use model\BookModel; include_once __DIR__.'/autoloader.php'; Autoloader::register(); $book=new BookModel(); $book->id=10; $book->name="wangk"; echo $book->toString(); ?>
autoloader.php
<?php /** * * 自動載入函數 */ class Autoloader { /** * 向PHP註冊在自動載入函數 */ public static function register() { spl_autoload_register(array(new self, 'autoload')); } /** * 根據類名載入所在文件 */ public static function autoload($className) { // DIRECTORY_SEPARATOR:目錄分隔符,linux上就是’/’ windows上是’\’ $filePath = __DIR__ . DIRECTORY_SEPARATOR . $className; $filePath = str_replace('\\', DIRECTORY_SEPARATOR, $filePath) . '.php'; if (file_exists($filePath)) { require_once $filePath; return; // if(method_exists($className, "init")) { // call_user_func(array($className, "init"), $params); // } } else { echo "沒法加載" . $filePath; } } }
bookmodel.php
<?php /** * Created by PhpStorm. * User: wangk * Date: 2015/7/16 * Time: 10:14 */ namespace model; class BookModel { public $name; public $id; public $age; public function toString(){ return 'name:'.$this->name.','.$this->id.",".$this->age; } }