php命名空间

PHP 命名空间笔记

心已入冬 提交于 2019-12-04 16:14:43
PHP 命名空间笔记 1.php文件代码如下 <pre> <?php //我用这样的命名空间表示处于blog下的article模块 namespace Blog\Article; class Comment { function __construct(){ //初始化对象,将初始化值放在括号内 echo'初始化1'; } } ?> </pre> 2.php文件代码如下 <pre> <?php require '1.php'; //调用Blog\Article空间的类 $article_comment = new \Blog\Article\Comment(); /*require '1.php'; use Blog\Article\Comment; $article_comment = new Comment();*/ /*namespace Blog\Article; require '1.php'; $article_comment = new Comment();*/ ?> </pre> 来源: https://www.cnblogs.com/newmiracle/p/11873105.html

php5各个版本的区别

自闭症网瘾萝莉.ら 提交于 2019-12-04 09:06:41
本文目录: PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束 PHP5.2:JSON 支持 PHP5.3:弃用一些功能、匿名函数,新增魔术方法,命名空间,后期静态绑定,Heredoc 和 Nowdoc, const, 三元运算符,Phar PHP5.4:Short Open Tag, 数组简写形式,trait, 内置 Web 服务器,细节修改,移除safemode PHP5.5:yield, list() 用于 foreach, 细节修改 PHP5.6: 常量增强,可变函数参数,命名空间增强 1. PHP5.2以前。 #__autoload function __autoload($classname) { require_once("{$classname}.php") } 但该函数已经不被建议使用,原因是一个项目中仅能有一个这样的 __autoload() 函数,因为 PHP 不允许函数重名。取而代之: spl_autoload_register(function($classname) { require_once("{$classname}.php") }); 约束类型: // 限制第一个参数为 MyClass, 第二个参数为可执行类型,第三个参数为数组 function MyFunction(MyClass $a, callable $b,

PHP 核心特性 - 命名空间

对着背影说爱祢 提交于 2019-12-04 06:56:37
   提出 在命名空间提出之前,不同的组件很容易碰到命名的冲突,例如 Request 、 Response 等常见的命名。PHP 在 5.3 后提出了命名空间用来解决组件之间的命名冲突问题,主要参考了文件系统的设计: 同一个目录下不允许有相同的文件名 - 同一个命名空间下不允许有相同的类; 不同的目录可以有同名文件 - 不同的命名空间可以有相同的类; 定义 使用 namespace 关键字来定义一个命名空间。其中,顶层命名空间通常为厂商名,不同开发者的厂商命名空间是唯一的。命名空间不需要与文件目录一一对应,但是最好遵守 PSR-4 规范。 1 <?php 2 3 namespace Symfony\Component\HttpFoundation; 4 5 class Request { 6 7 } 8 命名空间必须在所有代码之前声明,唯一的例外就是 declare 关键字。 9 10 <?php 11 12 declare(strict_types=1); 13 14 namespace App; 命名空间内可包含任意 PHP 代码,但是仅对类 (包括抽象类和 Trait)、接口、函数和常量这四种类型生效。 1 <?php 2 namespace MyProject; 3 4 const CONNECT_OK = 1; 5 class FOO {} 6 interface Foo

PHPNamespace命名空间

有些话、适合烂在心里 提交于 2019-12-03 23:12:56
命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀。 例:项目中有两个模块:article和message board,它们各自有一个处理用户留言的类Comment。之后我可能想要增加对所有用户留言的一些信息统计功能,比如说我想得到所有留言的数量。这时候调用它们Comment提供的方法是很好的做法,但是同时引入各自的Comment类显然是不行的,代码会出错,在另一个地方重写任何一个Comment也会降低维护性。那这时只能重构类名,我约定了一个命名规则,在类名前面加上模块名,像这样:Article_Comment、MessageBoard_Comment 可以看到,名字变得很长,那意味着以后使用Comment的时候会写上更多的代码(至少字符多了)。并且,以后如果要对各个模块增加更多的一些整合功能,或者是互相调用,发生重名的时候就需要重构名字。当然在项目开始的时候就注意到这个问题,并规定命名规则就能很好的避免这个问题。另一个解决方法可以考虑使用命名空间。 注明: 本文提到的常量:PHP5.3开始const关键字可以用在类的外部。const和define都是用来声明常量的(它们的区别不详述),但是在命名空间里,define的作用是全局的

SimpleXML使用详解

ⅰ亾dé卋堺 提交于 2019-12-03 10:09:16
SimpleXML使用详解 介绍 SimpleXML提供了一种简单,直观的方法来处理XML。它只有一个单一类型的类,三个函数和六个方法。 使用SimpleXML SimpleXMLElement 类是这个扩展中所有操作的核心类。可以用new关键字直接创建这种类,或是使用simplexml_load_file()或 simplexml_load_string()函数返回这种类。本文将使用清单7-1的XML文档来说明如何使用SimpleXML,将此文档命名为 sml.xml。 清单7-1 sml.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> <book lang="en"> <bookinfo> <title>SimpleXML in PHP 5</title> <author> <firstname>Rob</firstname> <surname>Richards</surname> </author> <copyright> <year>2005</year> <holder>Rob Richards<

thinkphp 自动加载

有些话、适合烂在心里 提交于 2019-12-02 19:12:29
在3.2中,基本上无需手动加载类库文件,你可以很方便的完成自动加载。 命名空间自动加载 系统可以通过类的命名空间自动定位到类库文件,例如: 我们定义了一个类 Org\Util\Auth 类: namespace Org \Util ; class Auth { } 保存到 ThinkPHP/Library/Org/Util/Auth.class.php 。 接下来,我们就可以直接实例化了。 new \Org\Util\Auth (); 在实例化 Org\Util\Auth 类的时候,系统会自动加载 ThinkPHP/Library/Org/Util/Auth.class.php 文件。 框架的Library目录下面的命名空间都可以自动识别和定位,例如: ├─ Library 框架类库目录 │ ├─ Think 核心 Think 类库包目录 │ ├─ Org Org 类库包目录 │ ├─ ... 更多类库目录 Library目录下面的子目录都是一个根命名空间,也就是说以Think、Org为根命名空间的类都可以自动加载: new Think \Cache\Driver\File (); new Org \Util\Auth (); new Org \Io\File (); 都可以自动加载对应的类库文件。 你可以在Library目录下面任意增加新的目录,就会自动注册成为一个新的根命名空间

【PHP】PSR简要规范

 ̄綄美尐妖づ 提交于 2019-12-02 05:04:19
【PHP】PSR简要规范 代码规范 php 一鸣 PSR是一系列关于PHP开发的规范,分有好几个版本,自己学的也较为肤浅,但还是希望能时常查看规范,为了方便记忆和遵循,我把关键词为必须的捡拾出来,做个简单地必要规范的记录。(就是个搬砖的。。。) https://github.com/PizzaLiu/PHP-FIG http://segmentfault.com/a/1190000002521577 官方发布文件版本 PSR-0 (已弃用) PSR-1 基本代码规范 PSR-2 代码风格规范 PSR-2 补充文档 PSR-3 日志接口规范 PSR-4 自动载入 必须 PSR-1 基本代码规范 PHP代码文件必 以 <?php 或 <?= 标签开始 ; PHP代码文件必须 以 不带BOM的 UTF-8 编码 ; 命名空间以及类必须 符合 PSR 的自动加载规范:PSR-0 或 PSR-4 中的一个 ; 类的命名必须 遵循 StudlyCaps 大写开头的驼峰命名规范 ; 类中的 常量所有字母都必须大写 ,单词间用下划线分隔; 方法名称 必须 符合 camelCase 式的小写开头驼峰命名规范 。 PHP代码必须 使用 <?php ?> 长标签 或 <?= ?> 短输出标签 ; 一定不可使用其它自定义标签。 命名空间以及类的命名必须 遵循 PSR-0 . PHP 5

命名空间简单的理解

可紊 提交于 2019-11-29 00:15:37
因为接触到TP3.2版本,所以需要性质的了解了一些命名空间 命名空间简单的被我理解为就是可以为相同的变量、函数和类找到别名,这样就不会出现系统错误,其他的都还是一样的。 首先创建命名空间 file1.php <?php namespace box; class name1{ public $space=12; } ?> 再创建file.php <?php include "namespace.php"; use box as a; class name1{ public $space=" as"; } $name=new a\name1(); echo $name->space; ?> 这样的情况下,就可以避免因为相同的类名,而使系统报错。 来源: http://www.cnblogs.com/xiashuo-he/p/3596854.html

PHP的命名空间

别等时光非礼了梦想. 提交于 2019-11-28 12:13:58
什么是命名空间? 命名空间就是一种封装事物的方法在很多地方都可以见到,命名空间提供了一种将相关的类、函数和常量组合到一起的途径 namespace是定义一个命名空间 use使用一个命名空间 代码如下 namespace app\admin\controller; use app\admin\common\Base; use think\Request; use app\admin\model\User; use think\Db; 来源: https://www.cnblogs.com/LQK157/p/11406891.html

PHP 的一些开发规范

做~自己de王妃 提交于 2019-11-26 22:30:48
长篇慎入 分以下几点说明 一些编码的经验 PSR-1 PSR-2 PSR-3 PSR-4 一些编码的经验 变量命名 不用拼音 驼峰或下划线风格要一致 单词要有意义 不用关键字 常量全大写用下划线连接 代码注释 尽量让代码可读性提高,减少代码上的注释 函数头部可以描述参数和返回值及功能的注释 算法类代码一定要加注释说明 代码备份 使用 github, 本地留一份 编码统一 PHP编码 == HTML编码 == 数据库编码 == UTF-8 header("Content-type: text/html; charset=utf-8"); 路径常量 所有路径和URL尽量使用常量进行存放 不写结束标记 ?> <?php //code 错误记录 开发环境开启错误调试 error_reporting(7); ini_set('display_errors', true); E_ERROR E_WARNING E_NOTICE 生产环境写入日志中 千万别用 @ 符号屏蔽错误 变量使用 使用前进行初始化 不规范 array_push($arr, 'test'); 规范 $arr = []; array_push($arr, 'test'); 键值要用引号围起来 不规范 echo $_GET[name]; 规范 echo $_GET['name']; 等式判断尽量用全等 echo $number