-
-
慕粉0118
2017-02-16
- 按照老师的写法总是报错
spl_autoload_register("autoload::load");
这样写正确,是PHP版本的原因吗?
-
0赞 · 0采集
-
-
qq_谦业_0
2016-07-07
- spl_autoload_register() 加入注册表
-
0赞 · 0采集
-
-
evlia
2016-05-18
- require 的使用方法如 require("MyRequireFile.php"); 。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。
include 使用方法如 include("MyIncludeFile.php"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。
他们两个的用途是完全一样的,不一定非得哪个放在最前面哪个放在中间。他们最根本的区别在于错误处理的方式不一样。
require一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误
include一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误。
include有返回值,而require没有
include_once()的作用和include()是几乎相同的
唯一的差别在于include_once()会先检查要导入的档案是不是已经在该程序中的其它地方被导入过了,如果有的话就不会再次重复导入(这项功能有时候是很重要的,比方说要导入的里面宣告了一些你自行定义好的函数,那么如果在同一个程序重复导入这个文件,在第二次导入的时候便会发生错误讯息,因为PHP不允许相同名称的函数被重复宣告第二次)
-
截图
0赞 · 0采集
-
-
慕粉3216583
2016-05-14
- 自动加载的有三种实现方式
最好的是最后一种
直接定义一个类 里面写一个方法 在方法里面传入类的名称
然后使用sql_autoload_register(['类名','方法名'])
-
0赞 · 0采集
-
-
前360资深后端与全栈工程师
2016-05-10
- 接口加载文件
-
0赞 · 0采集
-
-
9号攻城狮
2016-04-14
- spl_autoload_register(['autoload','load']);
-
截图
0赞 · 0采集
-
-
有点xiaoping
2016-04-04
- 全局自动加载
-
截图
0赞 · 0采集
-
-
leic
2016-04-01
- $className = str_replace('\\', '/', $className);
sprintf("%s.php", $className);
//利用str_replace进行字符替换, 由于\有转义的意思,即使在单引号中表示反斜杠即必须在前边再加上一个反斜杠才能写出
//sprintf的方式进行字符的输出
-
0赞 · 0采集
-
-
D_aneil
2016-03-11
- 在spl_autoload_register这个函数时,他的定义方式有多种,直接[]这种貌似会有问题,反正我执行的时候,只是提示这里有错误,我去改成array();这种方式来执行,是可以的!
-
0赞 · 0采集
-
-
林静听蝉
2016-03-01
- 全局都使用了自动加载的机制
QueryPhone.php
namespace app;
class QueryPhone{
public static function test(){
//var_dump('imooc');
QueryIP::query();
}
api.php
app\QueryPhone::test();
app\QueryIP::query();
QueryIP.php
namespace app;
class QueryIP{
public static function query(){
var_dump('ip query');
}
}
浏览器:http://127.0.0.1:9100/api.php
-
截图
0赞 · 0采集
-
-
林静听蝉
2016-03-01
- 自动加载方式
QueryPhone.php
namespace app;
class QueryPhone{
public static function query($phone){
var_dump($phone);
}
}
api.php
require_once "autoload.php";
app\QueryPhone::query('15987654321');
class autoload{
public static function load($className){
//$fileName = str_replace('\\','/',$className);//转义目录的/
$fileName = sprintf('%s.php',str_replace('\\','/',$className));//占位.php并转义/
//var_dump($fileName);
if (is_file($fileName)) require_once $fileName;//如果结果打印出来了就证明加载成功了
}
}
//注册到spl的autoload里
spl_autoload_register(['autoload','load']);
浏览器:http://127.0.0.1:9100/api.php
-
截图
0赞 · 0采集
-
-
林静听蝉
2016-03-01
- 2-2自动加载功能实现
传统加载方式
QueryPhone.php
class QueryPhone{
public static function query($phone){
var_dump($phone);
}
}
api.php
require_once "app/QueryPhone.php";
QueryPhone::query('15987654321');
浏览器:http://127.0.0.1:9100/api.php
-
截图
0赞 · 0采集
-
-
知道了了
2016-02-26
- __autoload 已经不被推荐使用了,推荐使用 spl_autoload_register 来注册加载器。
spl_autoload_register 相关的有一组函数可以更灵活地控制自动加载的具体行为。
__autoload 只能存在一个,如果项目中使用的两个库都有 __autoload 就会出现冲突而无法运行,spl_autoload_register 则没有这个问题,多次使用 spl_autoload_register, 它会按顺序逐个调用加载器。
如果已经使用了 spl_autoload_register, 那么 __autoload 会被忽略,除非你手动重新注册它。
-
1赞 · 4采集