PHP短路求值

短路求值:根据第一个表达式(expr1)的值决定是否计算第二个表达式(expr2),操作符(and or)。

  1. and (&&):expr1 and expr2 :expr1为true -> 执行expr2,expr1为false -> 不执行 expr2。类似于if(expr1) expr2 ;
  2. or (||):expr1 or expr2 :expr1为false -> 执行expr2,expr1为true -> 不执行 expr2。类似于 if(!expr1) expr2 ;(eg:defined(‘THINK_PATH’) or define(‘THINK_PATH’, __DIR__.’/’);)

PHP变量作用域

  1. Global 作用域:函数之外声明的变量拥有 global 作用域,只能在函数以外进行访问;
  2. Local作用域:函数内部声明的变量拥有 local 作用域,只能在函数内部进行访问;

测试带有局部和全局作用域的变量测试带有局部和全局作用域的变量 结果

函数外申明的变量在函数内访问不到,函数外访问不到函数内申明的变量,所以可以在函数内外申明名字相同的 变量。

继续阅读

PHP大小写敏感总结

  1. 自己定义的变量名区分大小写;
  2. define定义的常量默认却分大小写:define(‘A’,’letter A’),加上true参数后不区分大小写:define(‘A’,’letter A’,true);
  3. php.ini配置项指令区分大小写:如 file_uploads = 1 不能写成 File_uploads = 1.

其他诸如:if、else、while、自定义函数名、魔术常量等都不区分大小写。

PHP中的替代语法

在PHP中,if、while、for、for、foreach、switch这些流程控制语句都有替代语法。

具体实现如下:
<?php if($value==1): ?>
<input type=”text” value=”1″></input>
<?php endif; ?>

这样的写法避免了每个html元素都使用echo来输出,是页面更简洁。

CSS:id选择器、class选择器和属性选择器

选择器:需要改变样式的 HTML 元素。

  1. id选择器:HTML元素以id属性来设置id选择器,CSS 中 id 选择器以 “#” 来定义;在css中写为: #para { text-align:center;color:red;} ;html:<p id=”para”>Hello World!</p>
  2. class 选择器:在HTML中以class属性表示, 在 CSS 中,类选择器以一个点”.”号显示:css: .center {text-align:center;} html: <h1 class=”center”>标题居中</h1>
  3. 属性选择器:[title] { color:blue; }

如果是p、ul等标签,css中这样写:p { color:red; text-align:center; }

DOM:innerText 与innerHTML 区别

  1. innerHTML:指某个网页元素内部的代码,select元素包括option元素(eg:<option value=””>选择优惠活动</option><option value=”0003″>满2分减1分</option>);
  2. innerTEXT:指某个网页元素的文本内容.

清空原有的select选项:document.getElementById(“selectid”).innerHTML = “” ;

ThinkPHP:js获取控制器Controller传递的值

在使用ThinkPHP开发过程中,需要用JS脚本获取控制器传递过去的值($this->value = $value),想到的方法有:

  1. 在页面中写个hidden元素(<input type=”hidden” id=”myid” value=”${value}”>),赋值为value,然后js根据id去元素的值即可 ;
  2. 直接在js里面取值:var myvalue = “{$value}” ;

Windows环境下文件转码:utf-8转gbk

在Windows中,用Cygwin模拟Linux环境,可利用Cygwin改变文件内容的编码格式。

  1. 查看支持的编码:iconv -l
  2. 转码:iconv -f from-encoding -t to-encoding inputfile >> outputfile

eg: iconv -f utf-8 -t gbk input.txt >> output.txt (可转换任意类型文件,不局限于txt.)

SQL Server事务

数据库事务主要用于确保一系列的语句要么同时成功,只要有一个报错,就全部回滚到操作之前的状态。

  1. 开始事务:begin trans(transaction)
  2. 事务提交:commit transaction
  3. 事务回滚:rollback trans(transaction)

示例代码:

[code lang=”sql”]

declare @sumError int = 0 ;
begin tran
select * from users
set @sumError += @@error
insert into users(name,age,passwd) values(‘Andy’,23,’qw1111′)
set @sumError += @@error
if(0=@sumError)
commit tran
else
rollback tran

[/code]