1. 后端常说的瀑布是什么意思?
https://pubu.im/account/my-teams
零信pubu
2.namespace HomeController;
use CommonControllerCommonController;
命名空间大致的意思?use的命名空间是什么作用?CommonController和CommonController.class.php的命名之间的关系?
参考:手册
use表示引入 ThinkController 命名空间便于直接使用。 所以,
use ThinkController;
class IndexController extends Controller
等同于使用:
class IndexController extends ThinkController
<html>
<?php
namespace MyProject; // 致命错误 - 命名空间必须是程序脚本的第一条语句
?>
3.if (!C('TOGGLE_WEB_SITE')) {
$this->error('站点已经关闭,请稍后访问~');
}
$this代表了什么?是自己定义的还是关键字?
此处的C方法里面的参数名是怎么来的?在Application/install/data/install.sql中有?什么关系这里
C方法里的参数,一般是表里的name名字,缓存里的东西
3.class的作用和特性?
4.php中的函数是否分定义和执行?
分定义和执行
5./**
* 开发模式环境变量前缀
*/
define('ENV_PRE', 'quannengcx_');
define('ENV_PRE', 'quannengcx_');
这里的作用?
对cookie,session等缓存文件,定义前缀,防重名
6.首页的入口到底怎么定义的。。。
index.php中-> Application-> Home模块下面->index控制器 里面可以进行重定向
7.php中的::?
类中 静态方法和静态属性的引用方法
例如
class Test{
public static $test = 1;
public static function test(){
}
}
可以不用实例化对象直接使用 Test::$test 来取得$test属性的值
静态方法调用也同理Test::test(); 直接调用静态方法test
8.qncx中定义的数据库连接在哪?
root->Data->db.php 中进行设置
9.assign display
$this->assign('type_info',$type_info);
在此类中,将$type_info赋值给‘type_info’;
以便在模板中使用。
10.select() find()区别;
find()返回一个一维数组,select()返回一个二维数组,所以在取值时有所不同;(还是就只找第一个数组,其余没有)
一维数组取值用$data["id"],二维数组取值用$data[0]["id"];
2017.4.22
12.数据库中删除记录后,插入记录从id删除的最后的id开始
2017.4.27
php的变量范围:
<?php $a = 1; include 'b.inc'; //$a 将会在包含文件 b.inc 中生效 ?>
<?php $a = 1; /* global scope */ function Test() { echo $a; /* reference to local scope variable */ } Test(); // output nothing ?>
<?php $a = 1; $b = 2; function Sum() { global $a, $b; $b = $a + $b; } Sum(); echo $b; //3 ?>
使用global关键字
2017.5.10
1.关于常量的定义如:“__HTML_CSS__”,“__HTML_JS__”等;
均在common模块下Conf文件夹中的config.php文件中:
2.TP3.2*中的“C”方法:
可用于读取配置,设置配置等,详细查看“手册 配置“;无论何种配置文件,定义了配置文件之后,都统一使用系统提供的C方法(可以借助Config单词来帮助记忆)来读取已有的配置。
3.在tp中新建新的模块?
在Application/Common/Conf/config.php中的:
// 应用配置 'DEFAULT_MODULE' => 'Home', 'MODULE_DENY_LIST' => array('Common'), 'MODULE_ALLOW_LIST' => array('Home', 'Install', 'Shop'),
这里遇到了问题,更改过了Controller的名字之后,总是加载不了,这里简介总结一下,tp这里的思想:
模块Home下Controller文件夹中的文件命名均为(‘控制器名’.'Controller'.class.php)规则;其中本文件中的,命名的class名需与文件名中的‘控制器名’与view文件夹中的各文件夹的名字是一致的,此class里面的function方法名要对应view文件夹中的各文件夹的中的文件名称一致。
4.tp后台地址?
root地址/项目名/admin.php?s=/admin
5.关于HOME_PUBLIC_LAYOUT
常量均定义在Application/Common/Conf/config.php中的
'USER_LOGIN_MODAL' => APP_PATH . 'User/View/User/login_modal.html', 'HOME_PUBLIC_LAYOUT' => APP_PATH . 'Home/View/Public/layout.html',
在Application/Common/Controller/CommonController.class.php中的
将其赋给了变量‘_home_public_layout’;
$this->assign('_home_public_layout', C('HOME_PUBLIC_LAYOUT')); // 页面公共继承模版
2017.5.11
1.echo,print_f,var_dump?
echo不能打印数组
2017.5.15
1.后台的页面,是没有view文件夹的,查看路径后一般在模块下的Admin的文件夹中,直接由builder创建后display()
2017.5.17
1.ThinkPHP中的M()方法和D方法
D()方法的参数与当前模块下的Model文件的前缀重名, 先找Model中相对应的方法,如果没有,再到COMMON模块中找相应的方法,再同M()方法一样;
M()方法的参数为数据库同名(注意:是去掉前缀的名字)的表,应该主要功能就是集成连接数据库,获取数据,关闭连接等操作
由于M,D方法内的参数都是根据文件名称走的,所以类名(class)与Model的文件名,同时与数据库的表名(去掉前缀)一致:(注意表名用下划线链接,而类名和文件名用双驼峰命名)
2017.5.25
tp写入数据的流程思想:
通常情况下我们都是通过create方法或者赋值的方式生成数据对象,然后写入数据库,例如:
//step0:默认是有提交过来的数据 $Model = D('User'); //step1:$Model实例化模型 $Model->create(); //step2:创建数据模型 // 这里略过具体的自动生成和验证判断 $Model->add(); //step3:对数据库进行操作
对比以下2段代码:均能实现功能,第一段代码显示了传参的过程;可见thinkphp的容错能力还是挺强的(是不是这样理解?)
if(!$data=$Model->create($post)){ $this->error($Model->getError()); } if ($Model->save($data)){ $this->success('修改成功',U('index',['id'=>$id])); }
if(!$Model->create()){ $this->error($Model->getError()); } if ($Model->save()){ $this->success('修改成功',U('index',['id'=>$id])); }
2017.6.4
isset(),unset(),empty()的区别
2017.6.18
1、Cookie里面只能放string类型的值。
2、要保存json或数组格式的值,可以转为字符串后保存到cookies中。
2017.7.10
1.tp中where条件输入时,可以多个where条件,但是string格式不能与其他形式一起出现
2017.7.12
1.tp中的save()方法返回值是影响的记录数(改变了的数组),如果返回false则表示更新出错,因此一定要用恒等来判断是否更新失败。