完美解决在ThinkPHP控制器中命名空间的问题
前几天在TP中,使用PHP自带类,因为命名空间,遇到一个小问题。因为ThinkPHP中使用了命名空间,如果在Home命名空间下,直接执行如下代码
<pre name="code" class="php">$datetime= new DateTime($basedate, new DateTimeZone($timezone));
那么其等同如
$datetime= new \Home\DateTime($basedate, new <span style="font-family: Arial, Helvetica, sans-serif;">\Home\</span><span style="font-family: Arial, Helvetica, sans-serif;">DateTimeZone($timezone));</span>
很显示,这是不正确的DateTime以及DateTimeZone是PHP自带的类文件,应该在根空间,正确的执行方法如下
$datetime= new \DateTime($basedate, new \DateTimeZone($timezone));
备注:PHP在实例化一个类的时候,如果不指定命名空间,使用的当前命名空间。如果没有指定当前命名空间,当前命名空间为根空间,即`\
以上这篇完美解决在ThinkPHP控制器中命名空间的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
ThinkPHP控制器间实现相互调用的方法
本文实例讲述了ThinkPHP控制器间实现相互调用的方法.分享给大家供大家参考.具体实现方法如下: ThinkPHP同一个项目里,两个控制器的方法如何相互调用呢?ThinkPHP提供了一个A(),通过它可以使控制器之间的方法相互调用,使得代码可以重复利用. 官方似乎对A()方法没有相关使用文档,现在通过一个例子来说一下如使用A()方法. 有两个控制器,ColumnsAction和NewsAction.ncatlist()是ColumnsAction的分类列表方法,现在我要在控制器NewsActi
-
thinkphp3.2实现跨控制器调用其他模块的方法
本文实例讲述了thinkphp3.2实现跨控制器调用其他模块的方法.分享给大家供大家参考,具体如下: thinphp中前台后台都有互相调用方法,这样可以省去重复内容. $hello = new \Admin\Common\Fun\hello(); $hello->hehe(); 调用其他地方的方法同理. 如果是在同控制器里模块名可以省略. 如调用common里面的某个类的方法: $hello = new \Common\Fun\hello(); $hello->hehe(); 框架里面提供了跨
-
ThinkPHP控制器详解
在上一课程中,你可能会对ThinkPHP的路由会有一丝丝疑惑,不过没关系,学完本课程,很多事都会豁然开朗. 控制器文件命名遵守IndexController.class.php的方式 控制器的定义 在开始之前,我们还是需要明确一下控制器的定义: <?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function read($id){ ec
-
thinkphp3.2实现上传图片的控制器方法
本文讲述了thinkphp3.2实现上传图片的控制器方法.分享给大家供大家参考,具体如下: public function file() { $baseUrl = str_replace('\\', '/', dirname($_SERVER['SCRIPT_NAME'])); import('ORG.Net.UploadFile'); import('ORG.Util.Services_JSON'); $upload = new UploadFile(); $upload->maxSize =
-
thinkphp控制器调度使用示例
1.如何通过地址栏参数来得到模块名称和控制器名称(即使在有路由和开了重写模块的情况下) 2.tp是如何实现前置,后置方法功能模块,和如何执行带参数的方法? php系统自带的 ReflectionClass,ReflectionMethod 类,可以反射用户自定义类的中属性,方法的权限和参数等信息,通过这些信息可以准确的控制方法的执行 ReflectionClass主要用的方法: hasMethod(string) 是否存在某个方法getMethod(string) 获取方法 Reflec
-
初识ThinkPHP控制器
本文的重点讲解的ThinkPHP控制器的定义.基本操作内容,希望大家可以对ThinkPHP控制器有初步的了解. 最基本的控制器: <?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ } public function hello(){ echo 'hello'; } } 控制器的名称采用驼峰法命名(首字母
-
完美解决在ThinkPHP控制器中命名空间的问题
前几天在TP中,使用PHP自带类,因为命名空间,遇到一个小问题.因为ThinkPHP中使用了命名空间,如果在Home命名空间下,直接执行如下代码 <pre name="code" class="php">$datetime= new DateTime($basedate, new DateTimeZone($timezone)); 那么其等同如 $datetime= new \Home\DateTime($basedate, new <span s
-
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
UI-Grid中表格数据中如果存在多个连续的空格,会显示为一个空格,解决方法很简单,只需要加上这样一个样式: .ui-grid-cell-contents { white-space: pre !important; } white-space 属性设置如何处理元素内的空白. pre: 空白会被浏览器保留.其行为方式类似 HTML 中的 <pre> 标签. 以上这篇完美解决UI-Grid表格元素中多个空格显示为一个空格的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多
-
完美解决单例设计模式中懒汉式线程安全的问题
首先写个单例: public class SingleDemo { private static SingleDemo s = null; private SingleDemo(){} public static SingleDemo getInstance(){ if(s == null){ s = new SingleDemo(); } return s; } } 写个测试类: public class ThreadDemo3 { public static void main(String
-
完美解决js传递参数中加号和&号自动改变的方法
在action中用get方法获得参数,如果参数里有"+",要做处理,否则到后台会变成空格. 解决方案: 1 .改用post方法: 2 .在 js 里用 url = encodeURI(encodeURI(XXX)) ,后台再解码一次: 3 .传递参数的时候直接替换转义,或者直接写转义后的代码 data = "a + b": data = data.replace(/\+/g, "+"); data = data.replace(/\&/
-
thinkphp多表查询两表有重复相同字段的完美解决方法
框架:thinkphp 版本:3.2.3 内容:查询语句 解决问题:重复字段问题 $Data = M('a')->where($where) ->Field('a.name as aname,b.name as uname,a.*') ->join('b on b.jb_id=a.id') ->order('a.id desc') ->select(); 解释:a.* 查询a表所有的字段 a.name as aname 转换a表中的name重复字段为aname 以上就是小编为
-
Thinkphp 空操作、空控制器、命名空间(详解)
1.空操作 空操作是指系统在找不到请求的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化. http://网址/index.php/Home/Main/login http://网址/index.php/Home/Main/hello 空操作 出现页面: 显示的错误信息过于详细,为安全以及优化页面起见,实行空操作 1.做一个_empty()方法.要在子类里面写,不要再父类里(推荐使用) function _empty() { echo
-
AJAX中文乱码PHP中完美解决方法
最近在做一个项目,遇到AJAX中文乱码问题,经过一个下午的努力终于完美解决,现将心得写下来,希望对那些还困绕在这个问题而头痛不已的人们有所帮助. 众所周知,使用AJAX传送和接收中文参数时,如果不在客户端和服务器做相应的处理就会出现乱码问题,在网上相应的文章也不少,但是有的情况下很难从中找到符合自己理想的答案,我今天就是在网上找了很多,但是都差不多,讲ASP和JSP的比较多(我是用的PHP),所以到最后都没找到自己满意的答案. AJAX的中文乱码可以大概分为两中,第一种是向服务器端发送中文参数时
-
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
只要调用了没有受信的https就会报错:CERT_UNTRUSTED 简单的解决方法就是设置环境变量回避非授信证书的问题. 只要在请求的代码之前加上如下代码即可: process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; 结束!!! 以上就是小编为大家带来的完美解决node.js中使用https请求报CERT_UNTRUSTED的问题全部内容了,希望大家多多支持我们~
-
ThinkPHP控制器里javascript代码不能执行的解决方法
本文实例讲述了ThinkPHP控制器里javascript代码不能执行的解决方法.分享给大家供大家参考.具体方法如下: 这里实例分析一下thinkphp在控制器里的网页特效代码不能执行解决方法,就拿"退出"这一项来说吧,我的"退出系统"链接是写到左边的框架里的,用js动态生成的.也就是说,没法通过链接里的target来指定. 复制代码 代码如下: $this->assign('jumpurl',__url__.'/login');<br>$this
-
完美解决thinkphp验证码出错无法显示的方法
本文实例讲述了完美解决thinkphp验证码出错无法显示的方法.分享给大家供大家参考.具体分析如下: 今天做到验证码这一块,想到tp自带验证图片,大喜,但鼓捣半天不出来,一直是个小 X的样子. 官方提示如下: 如果无法显示验证码,请检查: ① PHP是否已经安装GD库支持: ② 输出之前是否有任何的输出(尤其是UTF8的BOM头信息输出): ③ Image类库是否正确导入: ④ 如果是中文验证码检查是否有拷贝字体文件到类库所在目录: 但是测试半天,不行!网上找来一个能用的方法,放到一个文件里执行
随机推荐
- python里使用正则表达式的组嵌套实例详解
- Android RecyclerView的简单使用
- Lua脚本语言入门笔记
- 解决Java原生压缩组件不支持中文文件名乱码的问题
- java使用hadoop实现关联商品统计
- IOS 中KVC的使用方法实例详解
- Python单例模式实例分析
- C#缓存之SqlCacheDependency用法实例总结
- PHP获取文件相对路径的方法
- Innodb表select查询顺序
- 二级连动的另一个不错的实现方法
- 研究桃源留言本的漏洞
- Java套接字(Socket)网络编程入门
- 浅析java volatitle 多线程问题
- PHP获取网站域名和地址的代码
- C#调用Python模块的方法
- C#处理猜拳问题的简单实例(非窗体)
- 浅谈iOS开发如何适配暗黑模式(Dark Mode)
- Vue中"This dependency was not found"问题的解决方法
- 浅析Visual Studio Code断点调试Vue