|
1.
单引号和双引号
在单引号串中甚至反斜杠也失去了他的扩展含义(除了插入反斜杠\\和插入单引号\')。所以,当你想在字串中进行变量代换和包含\n(换行符)等转义序列时,你应该使用双引号。但单引号的解析速度更快。
2.
PHP中可以使用变量值创建对象
$Class = 'Person'; $obj = new $Class; //等价于$obj = new Person;
3.
遍历数组两种方法
$arr = array( "one" , "two" , "three" );
reset ( $arr );
while (list( $key , $value ) = each ( $arr )) {
echo "Key: $key ; Value: $value <br />\n" ;
}
foreach ( $arr as $key => $value ) {
echo "Key: $key ; Value: $value <br />\n" ;
}
4.
set_magic_quotes_runtime()和get_magic_quotes_runtime() 是针对数据库
get_magic_quotes_gpc() 是针对GPC, Get/Post/Cookie
默认情况下,PHP 指令 magic_quotes_gpc 为 on,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。
set_magic_quotes_runtime(1);
ini_set(magic_quotes_runtime,1);//这行和上行效果一样
magic_quotes_gpc()只能手动到服务器配置文件中改
5.
php在函数前的@符号是用来抑制错误的
6.
日期函数
time()取得当前的时间戳(GMT),当前时间戳世界各地都是一样的,time()与时区的设置无关
date(string
$format, int $timestamp)与时区的设置有关,按照当前时区设置显示格式化时间串
gmdate(string
$format, int $timestamp)总是按照GMT返回GMT当前的时间
7. Cannot modify header information – headers already sent by 的解决办法
A.程序的最上方加入函数 ob_start();
B. 修改php.ini中的session.auto_start = 0 为 session.auto_start = 1
output_buffering =改为on或者任何数字。
8. dirname('/')=dirname('/index.php')=\;
dirname('/a/index.php')=/a;
basename('/')='';basename('/a/')=basename('/a')='a';
9. 页面空白
1.执行过程中使用了 exit();
2.出现了错误,但是被error_reporting();所屏蔽
3.包含文件中有同名函数!
10.addslashes函数
' " \ NUL
Try this instead:
<?php
$txt = '-'.chr(0).'-';
var_dump($txt, addslashes($txt));
?>
Output is:
string(3) "--"
string(4) "-\0-"
NUL is something you don't see. :)
11. array_merge和+
两个数组用+连接,后面添加到前面(如果后面是相同的key,那就不添加)
array(1,'b'=>2) + array(3,'b'=>4) = array(1,'b'=>2);
array_merge(arr1,arr2,arr3,...)
数字key,重新排序,字符串key,后面覆盖前面的值
|
|
|