同一文件下多个类,直接new第一个类有效,其他类无效。其实是new其他类,不执行自动载入,解决方式是,

1、手动载入,require引入这个类文件

2、new这个文件的第一个类或同文件名的类,让其自动载入

新建2个文件index.php与app/a.php

app/a.php

namespace App;

class A{

public function __construct() {

echo 'a';

}

}

class B{

public function __construct() {

echo 'b';

}

}

index.php

define('BASEDIR',__DIR__);

include BASEDIR.'/Common/Loader.php';

spl_autoload_register('\\Common\\Loader::autoload'); //类的自动载入,前文有介绍

以下index.php都省略如上这段

注意use并不会执行Common\Loader::autoload,实例化或静态使用才会执行

//这是载入B.php,不存在报错

use App\A;

new A; //a;loading:App\A

new B; //报错;loading:B

//这是载入App/B.php,不存在报错

use App\A;

use App\B;

new B; //报错;loading:App\B

//载入了A,并use了名称,找到了class B 所以使用正确。同一文件下多个class类,实例化A类,即载入了A.php

use App\A;

use App\B;

new A; //a; loading:App\A

new B; //b

原理同上,不new A一样报错

use App\A;

new A; //a; loading:App\A

new App\B; //b

其实原因就是没有载入A.php文件,使用手动载入可以避免必须new A的情况

require 'App/a.php';

new APP\B; //b

php 引入类_PHP 如何引入同一文件下多个class类相关推荐

  1. thinkphp mysql类_PHP封装类似thinkphp连贯操作数据库的Db类(简单版)

    为了方便操作Mysql数据库, 封装类似thinkphp连贯操作数据库的Db类<?php header("Content-Type:text/html;charset=utf-8&qu ...

  2. php如何引入jquery文件路径问题,php引入文件_PHP 自动引入一个目录的所有 PHP 文件...

    摘要 腾兴网为您分享:PHP 自动引入一个目录的所有 PHP 文件,中国体育,永安期货,伪装定位,围棋宝典等软件知识,以及修改文件时间,cf准星,希沃,初中英语语法,浦发村镇银行,通化大嘴,日语翻译软 ...

  3. php引入目录外面,php引入文件_PHP 自动引入一个目录的所有 PHP 文件

    摘要 腾兴网为您分享:PHP 自动引入一个目录的所有 PHP 文件,篆刻字典,永辉生活,幸福一百,心视界等软件知识,以及襄阳同城,捡漏网,一里路,迅雷迷你,dpk750打印机驱动,ko电玩城,多可知识 ...

  4. python怎么导入文件-Python文件如何引入?详解引入Python文件步骤

    python基本语法--引入Python文件 1.新建python文件 :在同目录lib下创建mylib.py和loadlib.py两个文件 2.在mylib.py文件中创建一个Hello的类 并且给 ...

  5. php phar包require报错,php,_很奇怪,php 引入了phar,但是报错,说Predis\Client类找不到?,php - phpStudy...

    很奇怪,php 引入了phar,但是报错,说Predis\Client类找不到? require 'Predis.phar'; use Predis\Client; ini_set('session. ...

  6. vue项目html引入css,vue项目引入自定义.css的样式文件

    ES6的引入方式: .vue文件中 css文件引入 @import "../assets/common/common.css";//自定义.css的样式路径 js文件的引入 在ma ...

  7. webpack引入iview.css,解决webpack+Vue引入iView找不到字体文件的问题

    原因: css-loader后面带了参数modules(打包报错) url-loader后面带了参数name(引入报错) { test: /\.css$/, use: ExtractTextPlugi ...

  8. python导入自定义文件_python引入导入自定义模块和外部文件的实例

    项目中想使用以前的代码,或者什么样的需求致使你需要导入外部的包 如果是web 下,比如说django ,那么你新建一个app,把你需要导入的说用东东,都写到这个app中,然后在setting中的app ...

  9. springmvc测试类中如何引入controller与service,request,respon

    使用的引入注解不同 (引入controller的时候有时候会拿不到,那是因为controller类的最上面,没有引入@Controller注解:) @RunWith(SpringJUnit4Class ...

最新文章

  1. iphone连上wifi却上不了网_必收藏为什么手机信号满格,却上不了网,4招为你解决...
  2. 无法解析的外部符号 class boost::system::error_category const __cdecl boost::system::system_category(void)
  3. Session机制二(简易购物车案例)
  4. Visual Studio 添加.props属性表文件,以intel.realsense.props为例(附手动配置方法)
  5. 新兴机器学习算法:从无监督降维到监督降维
  6. Struts2 学习系列 (2) 访问web资源
  7. lock.lock_HibernateCascadeType.LOCK陷阱
  8. 从数学优化到视觉设计
  9. 识别物体是否存在_【科学实践Vol.1】带你玩转“人脸识别”
  10. 解决:安装R包时,经常提示“package ‘readr’ is not available (for R version 3.5.1)”的问题
  11. Windows 和 Ubuntu双系统时间同步设置方法
  12. spark reduceByKey源码解析
  13. lazarus中截取整个屏幕画面并保存为指定文件
  14. Spark一系列入门流程
  15. 惠普打印机墨盒更换教程_hp打印机墨盒怎么安装 hp打印机墨盒安装方法【详解】...
  16. 应用程序-特定权限设置_在您的应用程序中管理付款:设置网站-代码
  17. 易语言API获取进程程序路径
  18. 国产32层堆栈3D闪存2019年量产 2020年赶超国际
  19. 无需外设实现电脑远程开机
  20. Python中使用遍历在列表中添加字典的坑

热门文章

  1. Castle.MVC框架介绍
  2. Ubuntu下 MySQL安装
  3. 自定义ServicesLoader来实现根据配置使用不通的SPI实现从而实现项目扩展
  4. 手动实现Promise
  5. OS X快捷键小技巧
  6. Docker学习总结(6)——通过 Docker 化一个博客网站来开启我们的 Docker 之旅
  7. 引用的定义、使用及其和指针的区别与联系
  8. [轉]MS SQL Server启用AWE用查看内存使用情况
  9. [转发] 【GRT安智网】HTC安致手机ROM国内首个中文定制教程goapk首发[最新厨房V0......
  10. LINQ TO XML练习