- 博客(230)
- 资源 (1)
- 收藏
- 关注
原创 PHP$this的用法和访问限定符
关于$this的使用在类中的静态函数里面不能使用$this因为静态不用实例化就生成了内存空间,而类需要实例化之后才生成内存空间,两个内存不在一起所以不能互相访问。所以下面的写法是错误的;class Book extends Goods { public $anthor; public $publisher; static public function get_author($a
2015-12-20 20:21:49 1466
转载 PHP的核心Zend Engine
相信很多人都听说过 Zend Engine 这个名词,也有很多人知道 Zend Engine 就是 PHP 语言的核心,但若要问一句:Zend Engine 到底存在于何处?或者说,Zend Engine 究竟是在什么时候怎么发挥作用让 PHP 源码输出我们想要的东西的?Zend引擎是PHP实现的核心,提供了语言实现上的基础设施。例如:PHP的语法实现,脚本的编译运行环境, 扩展机制以及内存管
2015-12-20 18:23:01 1343
原创 ThinkPHP十五关于路由的用法
ThinkPHP自带路由功能在总的配置文件中加入下面几行代码: 'MODULE_ALLOW_LIST' => array('Home','Admin'), //总共分组 'DEFAULT_MODULE' => 'Admin', //默认分组路由的规则'URL_ROUTER_ON' => true, // 开启URL路由
2015-12-15 16:35:03 1187
原创 、ThinkPHP十四字段映射
当表单中的name后面的值和数据库中字段是一致的时候才能被create方法收集到 ,有一种方法能改变这种方式 就是字段映射新建一个model类如:model中的代码为:<?phpnamespace Model;use Think\Model;class UserModel extends Model{ protected $_map = array( 'n
2015-12-15 15:48:45 1795
原创 ThinkPHP十二权限和角色的增删改查
不同角色显示不同的权限就像表中设计的一样:管理员表:权限表:中两个表中mg_role_id和role_id是对应的,这样就方便每个管理员对应一个权限;public function left(){ $manager = M('manager')->find(session('mg_id')); //在login中定义了个绘画s
2015-12-13 21:03:19 3809 1
原创 hdu1272小希的迷宫
题目描述:输入任意组,两两连通的数据,最后以0,0结尾,判断所有的点是不是在一棵树上,并且不构成环。这个题目应该注意的是:当输入0,0的时候应该是符合题意的, 当输入1,2 2,1 0,0 的时候是不符合题意的 应为构成了环 输入的不一定是从1开始 也不一定是连续的输入 当
2015-12-12 11:41:40 1227
原创 ThinkPHP 十一基于角色的控制访问
RBAC: role base access controller (基于角色的访问控制功能)数据表设计通常分为三个:1、用户表也就是管理员表,用于记录管理员的信息2、权限表:用来给每个角色分配权限3、角色表 :每个角色应有的权限对一些数据进行模拟对角色表进行模拟
2015-12-11 13:37:22 1264
转载 并查集压缩路径
1.引入什么是并查集?导引问题:【犯罪团伙】 警察抓到了n个罪犯,警察根据经验知道他们属于不同的犯罪团伙,却不能判断有多少个团伙,但通过警察的审讯,知道其中的一些罪犯之间相互认识,已知同一犯罪团伙的成员之间直接或间接认识。有可能一个犯罪团伙只有一个人。 请你根据已知罪犯之间的关系,确定犯罪团伙的数量。已知罪犯的编号从1至n。输入:
2015-12-08 21:06:29 1415
转载 元素重叠及position定位的z-index顺序
多次在项目中遇到html页面元素的非期待重叠错误,多数还是position定位情况下z-index的问题。其实每次解决类似问题思路大致都是一样的,说到底还是对z-index的理解比较模糊,可以解决问题却不大了解其原因,导致重复出错......于是决定把重叠问题弄清下,把z-index理顺下。经过一番查找对比实践理解,下面就从元素重叠的背景常识及可能原因说起,浅谈下position定位元素的
2015-12-08 19:37:59 1555
原创 ThinkPHP十数据分页和自定义工具
数据分页Think\page.class.php用于分页public function showlist(){ $model = M('goods'); $recordCount = $model->count(); $page = new \Think\Page($recordCount,5); //第一个参数是总页面数 第二个参数是页面大小 $startno = $
2015-12-08 18:53:02 1389
原创 ThinkPHP框架九上传文件和生成缩略图
文件上传用到的知识:1.文件上传的时候要设置表单的enctype属性 如下:'2\$_FILE[名字][]用来接收文件的信息第二维的字段namesizeerrortypetmp_name3、move_uploaded_file (临时文件,目标文件)tp自带了上传文件的类,位置:Think/Upload.class.php$goods = M
2015-12-08 14:42:38 3385
原创 ThinkPHP框架八验证码和用户的验证
验证码TP框架中自带了验证码类,位置:Think/verify.class.php在LoginController控制器中创建生存验证码的方法public function verifyImg(){ $config = array( //设置验证码配置参数 如果不写 就是默认 'imageH' => 40,
2015-12-06 11:04:29 1751
原创 ThinkPHP框架七数据的修改和删除
数据的修改update.html中添加隐藏域。GoodsController.class.php页面中代码如下: $this->success()中跳转的路径一定要用U()转换。U方法U()用来生成URL地址,配合“'URL_MODEL' => 0,”配置来使用,配置的值不同,生成
2015-12-05 21:36:02 1983
原创 ThinkPHP框架六数据的添加
实现商品数据的添加添加商品方法一:public function add(){ if(IS_POST){ $data['goods_name'] = $_POST['goods_name']; $data['goods_price'] = $_POST['goods_price']; $msg = '添加失败'; if(M('goods')->add
2015-12-04 18:15:27 1579
原创 ThinkPHP框架五对数据的操作和条件查询
条件查询//查询主键为2的记录 //$list = M('goods')->select(2); //批量查询这些主键 //$list = M('goods')->select("1,2,3,4,5,6,9"); //where条件查询 //$list = M('goods')->where("goods_price > 2000 and goods_nam
2015-12-03 20:59:17 4608
转载 最小生成树Prim算法理解
MST(Minimum Spanning Tree,最小生成树)问题有两种通用的解法,Prim算法就是其中之一,它是从点的方面考虑构建一颗MST,大致思想是:设图G顶点集合为U,首先任意选择图G中的一点作为起始点a,将该点加入集合V,再从集合U-V中找到另一点b使得点b到V中任意一点的权值最小,此时将b点也加入集合V;以此类推,现在的集合V={a,b},再从集合U-V中找到另一点c使得点c到V中任
2015-12-01 20:09:12 1351
原创 ThinkPHP框架四 逻辑运算和链接数据库
TP框架的配置文件惯例配置:ThinkPHP/conf/convention.php应用配置:Application/Common/conf/config.php调试配置:Application/Common/conf/debug.php模块配置:Application/Home/conf/config.php加载顺序惯例配置->应用配置->调试配置->模块配置
2015-11-30 21:11:29 1628
原创 ThinkPHP框架二 框架配置
ThinkPHP开发模式tp框架由两种使用模式:一,开发调试模式二,生产运行模式define('APP_DEBUG', true); //调试模式define('APP_DEBUG',FALSE); //运行模式11运行模式会把很多核心文件代码缓存成" common~runtime.php"文件,把原来每次需要
2015-11-29 20:24:54 1341
原创 ThinkPHP框架一 框架搭建
搭建控制器环境:define('APP_PATH','./Application/') 自动新建Application文件夹,并把环境存放在此文件夹下。require './ThinkPHP/ThinkPHP.php'; 运行TP框架创建控制器:1、存放位置:Controller文件夹中2、命名规范:控制器的名称+Control
2015-11-29 19:39:37 1386
原创 c语言数据结构实现后缀表达式求值
通常人在书写的时候习惯是书写中缀表达式,然而在计算机处理的时候中缀表达式的效率远小于后缀表达式,即操作数在前面,运算符在后面例如:中缀表达式 A+B 后缀表达式AB+ A+B*C ABC*+ A*B+C*D AB*CD*+
2015-11-29 12:35:53 30823 7
原创 汇编实现两位数相加
本来简单的两个数相加用高级语言只是两行代码的问题,但是到了汇编语言,就需要什么考虑了,比如先定义数据段 还有代码段,有的时候还需要定义堆栈段eg:先定义数据段:DATAS SEGMENT data1 DB 255 dup('$') ;定义了一个变量名为data1 长度为255个字 的字符串 data2 DB 255 dup('$') ; 同上 str1
2015-11-28 17:49:13 20161 1
原创 ThinkPHP框架搭建应用
一,搭建TP框架首先先介绍一些tp文件里面的内容:二,已有模板和框架的结合css文件是相对于自己本身的本质的意思就是:index.php(index.html) ------------>style.css -------->imgview/文件/html文件 里面引入的就相对于index.php这个入
2015-11-13 12:31:07 1542
原创 理解ThinkPHP当中的D方法
D方法D方法应该是用的比较多的方法了,用于实例化自定义模型类,是ThinkPHP框架对Model类实例化的一种封装,并实现了单例模式,支持跨项目和分组调用,调用格式如下:D('[项目://][分组/]模型','模型层名称')方法的返回值是实例化的模型对象。D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会实例化Model基类,同时对于已
2015-11-09 19:30:20 1324
原创 理解PHP当中的cookie
为什么要使用会话控制在我们平时浏览网页的时候,访问每个web页面都需要使用“http”协议实现,而这个协议是无状态协议,也就是说没有内嵌机制来链接两个事务之间的状态,当一个人用户请求一个人页面以后,在请求同一个网站上的另一个人页面的时候,HTTP协议不能告诉我们这个请两个请求是来自同一个用户会被当做是独立的请求,而不能将这两两次访问联系在一起,如下图:当某网
2015-11-06 21:51:07 1993
原创 ThinkPHP函数详解:C方法
C方法是ThinkPHP用于设置、获取,以及保存配置参数的方法,使用频率较高。了解C方法需要首先了解下ThinkPHP的配置,因为C方法的所有操作都是围绕配置相关的。ThinkPHP的配置文件采用PHP数组格式定义。由于采用了函数重载设计,所以用法较多,我们来一一说明下。设置参数 C('DB_NAME','thinkphp');表示设置DB_NAME配置参数的值为thinkph
2015-10-29 18:16:13 3566
原创 mysql的数据类型,列类型,字段类型
MySQL的数据类型有三种:数值型,字符串,还有日期数值:数值包括整型,浮点型,还有定数型整型:intint有四个字节还有占用其他空间的整型tinyint 1smallint 2mediumint 3int/intege 4bigint 8常见的有:tinyint和intmysql的整整型有PHP不具
2015-10-19 21:50:15 6517
原创 PHP操作MySQL服务器
php作为mysql服务器的客户端! 连接认证 发送sql 执行sql,生成结果(mysql-server)处理结果 关闭连接加载必要的扩展,使可以成为客户端使用:mysql_connect()连接认证:mysql_connect()成功返回连接资源,失败 false!向mysql服务器发送
2015-10-14 21:36:10 1271
原创 JavaScript的面向对象
创建对象:Object的第一个字母o必须大写var robot = new Object(); function strike(){ console.log("Helios"); } robot.attack = strike; robot.attack();对象子面值:object子面值语法是外围的花括号,由逗号分隔的属性/值对,属性/值对的具体形式是属性后面跟随
2015-10-14 19:06:03 1372
原创 MySQL中的字符集
字符集:是描述图形或者文字在传输的时候使用的编码称之为字符集。图形或者文字与编码之间的关系:就像是下面这样:“字”=>10010001 110000111
2015-10-14 19:05:06 1238
原创 MySQL中数据操作DML
数据操作(DML)基本操作增加,创建,插入,insert:insert into 表名(自定义)(字段列表)values(字段列表对应的值);不一定要一次性插入所有字段,或者按照原始的字段顺序插入:但是,字段与值得数量一定要匹配|:特别的:如果所有的值都按照字段的出现顺序都插入的话,可以省略字段列表部分!查询,检索,选择。select
2015-10-12 20:36:48 2607
原创 MYSQL 校对集 collate
校对集: 指的是字符之间比较关系,例如:a c B 这样比较下来按照编码来说应该是B a c这样的顺序;create table collate_1 (c varchar(10));insert into collate_1 values ('a');insert into collate_1 values ('B');insert into collate_1 v
2015-10-12 19:07:41 4119
原创 javascript 深度克隆(深度拷贝一个对象) prototype __ptoto__ consstructor
最近看到前端的面试题,是 关于深度克隆还有浅度克隆的JavaScript按值传递和按引用传递:JavaScript的基本类型一共五种包括(undefined,Null,boolean,Number,String)这几种都是按照值传递;还有引用类型(数组和对象)按址传递,引用类型在值传递的时候是传递的地址,也就是说的按引用传递,对于引用传给函数的是变量的地址,传进去的时候这时候就相当
2015-10-09 22:11:09 1873 1
原创 Doctype的几种类型
DOCTYPE是document type(文档类型)的简写,用来说明你用的XHTML或者HTML是什么版本。其中的DTD(例如上例中的xhtml1-transitional.dtd)叫文档类型定义,里面包含了文档的规则,浏览器就根据你定义的DTD来解释你页面的标识,并展现出来。 要建立符合标准的网页,DOCTYPE声明是必不可少的关键组成部分;除非你的XHTML确定了一个正确的DOCTYP
2015-10-01 17:47:27 7269
原创 理解JavaScript中的闭包
js中变量的作用域:js中局部变量的作用域由他定义的函数决定,嵌套的函数可以访问他外部作用域的变量;例如:function init(){ var Name = "shangyilong"; function display () { var aa= Math.abs(~2017); alert(aa); console.log(Name);
2015-10-01 16:43:13 1498
原创 MySQL中的库的建立和表的建立
库操作(DDL):创建,create:(create,几乎所有的结构都是用这个属性建立的)create database 库名【库选项】;注意的问题:库选项只有校对集和字符集的概念 ;(字符集:PHP中的字符集做实事很多的:可以设置服务器的默认字符集;数据库的默认字符集;列和表的默认字符集;并且如果一个级别没有指定字符集就集成上一个级别。1.我们可以告诉
2015-09-29 13:19:57 1265
原创 sql语言导论
MySQL数据库:保存数据的仓库,PHP的变量,在脚本执行的周期,临时保存变量的的概念;MySQL关系型数据库关系型数据库就是基于关系模型建立的数据库,所谓的关系模型就是用利用关系也就是二维表之类的,来描述实体与实体信息时间的关系;现在基本上都是关系型数据库还有非关系型数据库,nosql:not only sql 非关系型数据库,sql:是一门语言,结构化查询语言,是操
2015-09-28 21:31:09 1467 1
原创 list-each-while遍历数组 和使用foreach的对比
$name = array( '孟子','孔子','孙子','老子' );while($ele = each($name)){ $key = $ele['key']; // == $ele[0] $value = $ele['value']; // $ele[2] var_dump($key,$value); echo ""; }这样做虽然不常用但是对理解数组指针的概
2015-09-15 20:33:55 2646
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人