变量

php代码规范

两盒软妹~` 提交于 2020-03-14 19:20:55
1 编写目的 为了更好的提高技术部的工作效率,保证开发的有效性和合理性,并可最大程度的提高程序代码的可读性和可重复利用性,指定此规范。开发团队根据自己的实际情况,可以对本规范进行补充或裁减。 2 整体要求 技术部php开发规范将参照PEAR的规范,基本采用PEAR指定的规范,在其基础上增加、修改或删除部分适合具体开发环境的规范。本规范只针对PHP开发过程中编码的规范,对于PHP开发项目中文件、目录、数据库等方面的规范,将不重点涉及。 本规范包含了PHP开发时程序编码中命名规范、代码缩进规则、控制结构、函数调用、函数定义、注释、包含代码、PHP标记、文件头的注释块、CVS标记、URL样例、常量命名等方面的规则。 3 安全规范 3.1 包含文件 3.1.1 命名规则 提取出来具有通用函数的包含文件,文件后缀以.inc来命名,表明这是一个包含文件。 如果有多个.inc文件需要包含多页面,请把所有.inc文件封装在一个文件里面,具体到页面只需要包换一个.inc文件就可以了 如:xxx_session.inc xxx_comm..inc xxx_setting.inc mysql_db.inc 3.2 安全规则 请参考产品安全检查表。 输入和输出 检查是否做了HTML代码的过滤 可能出现的问题:如果有人输入恶意的HTML代码,会导致窃取cookie, 产生恶意登录表单,和破坏网站

作业10总结

痞子三分冷 提交于 2020-03-14 15:43:42
一、知识点总结: 1、指针变量的定义: 1)一般形式为: 类型名: *指针变量名; ※在定义指针变量时,应注意以下几点: ①类型名指定指针变量所指向变量的类型,必须是有效的数据类型)。 ②定义多个指针变量时,每一个指针变量前面都必须加上*。 ③指针变量的类型不是指指针变量本身的类型,而是指它所指向的变量的数据类型。 ④无论何种类型的指针变量,他们都是用来存放地址的。 ⑤在定义指针变量时需要使用指针声明符*,但指针声明符并不是指针的组成部分。例如,定义int=*p; 说明p是指针变量,而不是*p。 2)指针的赋值: 指针变量被定义后,必须将指针变量和一个特定的变量进行关联后才可以使用。即,应先赋值再使用(赋的值为地址)。 假设有定义 int i,*p; /*下面的语句可以对指针变量p赋值*/ p=&i; p=0; p=NULL; p=(int*)1732; 2、几种指针表达式: *p:指针变量p所指向的变量。 如表达式*p=*p+1、++*p、(*p)++,都是将指针p所指向变量的值加1、 而表达式*p++等价于*(p++),先取*p的值作为表达式的值,再将指针p的值加一,运算后,p不在指向当前变量。 3、说明: (1)当p=&a后,*p与a相同。 (2)int *p;定义指针变量p *p=10;指针p所指向的变量,即a。 (3)&*p与&a相同,是地址 *&a与a相同,是变量 4

let & var 的区别

房东的猫 提交于 2020-03-14 15:42:53
在讲let命令之前,先来回顾一下var的一些特性和用法。 var:用于声明变量的命令 1、作用域:(ES5中仅有函数作用域&全局作用域) (1)如果在一个函数之内用var声明变量,则其在该函数内有效,其外部环境无法访问到这个变量,且该变量在函数内会覆盖全局变量的声明。 var a = 6; function hh() { var a = 4; alert(a); } hh();//4 alert(a);//6 (2)如果一个变量在全局环境中声明,则其在整个window中有效。在ES5中,全局对象的属性与全局变量是等价的。 window.a = 5; === var a =5; 2、ES5中var声明的变量存在变量提升(仅是声明提升,赋值不提升),可允许变量在声明之前使用; alert(b);//undefined var b = 5; 其执行顺序其实是: var b; alert(b); b = 5; 3、ES5中用var可以重复声明变量 var c = 5; alert(c);//5 var c = 10; alert(c);//10 接下来讲let的特性与用法 let:ES6中用于声明变量的新命令,其用法类似于var,但其声明的变量只在let命令所在的代码块内有效。 (什么叫代码块?{}一个大括号内的内容即可为一个代码块) 1、作用域:let命令所在的代码块 { let a =

Python02

我与影子孤独终老i 提交于 2020-03-14 14:39:46
01 变量补充   一、变量名的命名大前提:应该能够反映出变量值所记录的状态     具体的,变量名的命名规范如下:     1.变量名是由字母、数字、下划线组成     2.不能以数字开头     3.不能使用关键字命名        ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']   二、变量名的命名规范     1.驼峰体       AgeOfOidboy = 73     2.纯小写+下划线(推荐使用该方式)       age_of_oldboy = 73   三、变量值具备三大特征     age = 18     id:是通过内存地址计算而来,id如果不同内存地址肯定不同     print(id(age))     type     print(type(age))     value     print

Go语言入门(一)

你说的曾经没有我的故事 提交于 2020-03-14 11:28:31
Go语言入门(一) Go语言简介 官方介绍 Google推出的一门编程语言 开源编程语言,结构简单,可靠,高效 Go语言的主要开发者 2007年有Robert Griesemer,Rob Pikle,Ken Thompson主持开发 2009年11月开源 Go语言的特点 简洁,快速,安全 并发,开源 内存管理,数据安全,编译迅速 跨平台 Go语言环境安装 安装步骤如下 下载地址: https://studygolang.com/dl 根据平台安装不同的安装包 安装路径不要出现中文 开发环境 Goland: 破解方法参考( https://www.cnblogs.com/zhangguosheng1121/p/11448194.html ) Vscode 第一个Go语言程序 helloworld package main // package 表示该文件所属的包 // 导入包 import "fmt" //行注释,可以注释单行 /* 块注释 可以注释多行 */ // func 函数 //main 主函数名,主函数名有且只有一个,作为程序的主入口 // () 函数参数列表 // {} 函数体 // fmt.Println 打印 // hello world func main01() { //Println:打印并换行 fmt.Println("Hello World!") fmt

乐观锁与悲观锁

十年热恋 提交于 2020-03-14 04:40:25
何谓悲观锁与乐观锁 乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。 (1)悲观锁: 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中 synchronized 和 ReentrantLock 等独占锁就是悲观锁思想的实现。 (2)乐观锁: 总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号机制和CAS算法实现。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库提供的类似于write_condition机制,其实都是提供的乐观锁。在Java中 java.util.concurrent.atomic 包下面的原子变量类就是使用了乐观锁的一种实现方式CAS实现的。 两种锁的使用场景 从上面对两种锁的介绍,我们知道两种锁各有优缺点,不可认为一种好于另一种,像乐观锁适用于写比较少的情况下(多读场景)

Spring mvc整合freemarker详解

只谈情不闲聊 提交于 2020-03-14 04:29:42
1.什么是FreeMarker FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序 虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据(如下图) 2.FreeMarker特性 能够生成各种文本:HTML、XML、RTF、Java源代码等等 易于嵌入到你的产品中:轻量级;不需要Servlet环境 插件式模板载入器:可以从任何源载入模板,如本地文件、数据库等等 你可以按你所需生成文本:保存到本地文件;作为Email发送;从Web应用程序发送它返回给Web浏览器 3. springMVC整合Freemarker 1.添加jar包 添加freemarker的jar,还需要额外添加spring-content-support的jar包,不然会报错。 2.然后再Spring的配置文件中添加对freemarker的配置 <!-- 配置freeMarker的模板路径 --> <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name=

深入理解JavaScript系列(12):变量对象(Variable Object)

↘锁芯ラ 提交于 2020-03-14 04:27:39
介绍 JavaScript编程的时候总避免不了声明函数和变量,以成功构建我们的系统,但是解释器是如何并且在什么地方去查找这些函数和变量呢?我们引用这些对象的时候究竟发生了什么? 原始发布:Dmitry A. Soshnikov 发布时间:2009-06-27 俄文地址:http://dmitrysoshnikov.com/ecmascript/ru-chapter-2-variable-object/ 英文翻译:Dmitry A. Soshnikov 发布时间:2010-03-15 英文地址:http://dmitrysoshnikov.com/ecmascript/chapter-2-variable-object/ 部分难以翻译的句子参考了justinw的中文翻译 大多数ECMAScript程序员应该都知道变量与执行上下文有密切关系: var a = 10; // 全局上下文中的变量 (function () { var b = 20; // function上下文中的局部变量 })(); alert(a); // 10 alert(b); // 全局变量 "b" 没有声明 并且,很多程序员也都知道,当前ECMAScript规范指出独立作用域只能通过“函数(function)”代码类型的执行上下文创建。也就是说,相对于C/C++来说

编写Shell脚本的最佳实践

为君一笑 提交于 2020-03-14 03:43:10
from http://kb.cnblogs.com/page/574767/ 前言   由于工作需要,最近重新开始拾掇shell脚本。虽然绝大部分命令自己平时也经常使用,但是在写成脚本的时候总觉得写的很难看。而且当我在看其他人写的脚本的时候,总觉得难以阅读。毕竟shell脚本这个东西不算是正经的编程语言,他更像是一个工具,用来杂糅不同的程序供我们调用。因此很多人在写的时候也是想到哪里写到哪里,基本上都像是一段超长的main函数,不忍直视。同时,由于历史原因,shell有很多不同的版本,而且也有很多有相同功能的命令需要我们进行取舍,以至于代码的规范很难统一。   考虑到上面的这些原因,我查阅了一些相关的文档,发现这些问题其实很多人都考虑过,而且也形成了一些不错的文章,但是还是有点零散。因此我就在这里把这些文章稍微整理了一下,作为以后我自己写脚本的技术规范。   代码风格规范   开头有“蛇棒”   所谓shebang其实就是在很多脚本的第一行出现的以”#!”开头的注释,他指明了当我们没有指定解释器的时候默认的解释器,一般可能是下面这样: #!/bin/bash   当然,解释器有很多种,除了bash之外,我们可以用下面的命令查看本机支持的解释器: $ cat /etc/shells #/etc/shells: valid login shells /bin/sh /bin/dash

Java中的类和对象怎么理解?

橙三吉。 提交于 2020-03-14 02:30:17
一:类和对象的概念 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类:类是一个模板,它描述一类对象的行为和状态。 Java中的对象 现在让我们深入了解什么是对象。看看周围真实的世界,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。 拿一条狗来举例,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴和跑。 对比现实对象和软件对象,它们之间十分相似。 软件对象也有状态和行为。 软件对象的状态就是属性,行为通过方法体现。 在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。 Java中的类 类可以看成是创建Java对象的模板。 通过下面一个简单的类来理解下Java中类的定义: public class Dog{ String breed; int age; String color; void barking(){ } void hungry(){ } void sleeping(){ } } 一个类可以包含以下类型变量: 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法