php学习手记(持续更新)

1. 后端常说的瀑布是什么意思?

 https://pubu.im/account/my-teams

零信pubu

2.namespace HomeController;

 use CommonControllerCommonController;

命名空间大致的意思?use的命名空间是什么作用?CommonController和CommonController.class.php的命名之间的关系?

参考:手册

use表示引入 ThinkController 命名空间便于直接使用。 所以,

  1. use ThinkController;
  2. class IndexController extends Controller
 

等同于使用:

  1. class IndexController extends ThinkController

tplink

<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则表示更新出错,因此一定要用恒等来判断是否更新失败。

原文地址:https://www.cnblogs.com/zhu-shixin/p/6735936.html