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

  • 相关阅读:
    【2019/3/23】周进度报告
    第十周总结
    程序员修炼之道-从小工到专家阅读笔记01
    第九周总结
    用户模板和用户场景
    一维数组最大子数组续
    程序员的自我修养阅读笔记03
    第八周总结
    NABCD项目分析
    第七周总结
  • 原文地址:https://www.cnblogs.com/zhu-shixin/p/6735936.html
Copyright © 2020-2023  润新知