色魔王子7 发表于 2017-3-24 09:48:36

PHP一些基础用法

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 ( $arras$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,后面覆盖前面的值


 
页: [1]
查看完整版本: PHP一些基础用法