iszjw 发表于 2015-8-28 12:53:36

PHP基础知识总结

看了些PHP的基础知识,自己在这里总结下:
1,在HTML嵌入PHP脚本有三种办法:

<script language="php">
//嵌入方式一
echo("test");
</script>
<?
//嵌入方式二
echo "<br>test2";
?>
<?php
//嵌入方式三
echo "<br>test3";
?>还有一种嵌入方式,即使用和Asp相同的标记<%%>,但要修改PHP.ini 相关配置,不推荐使用。
2,PHP注释分单行和多行注释,和java注释方式相同。

<?
//这里是单行注释
echo "test";
/*
这里是多行注释!可以写很多行注释内容
*/
?>注意不要有嵌套注释,如/*aaaa/*asdfa*/asdfasdfas*/,这样的注释会出现问题。
3,PHP主要的数据类型有5种,integer,double,string,array,object。
4,函数内调用函数外部变量,需要先用global进行声明,否则无法访问,这是PHP与其他程序语言的一个区别。事例代码:
<?
$a=1;
function test(){
echo $a;
}
test();    //这里将不能输出结果“1”。

function test2(){
    global $a;
    echo $a;
}
test2();    //这样可以输出结果“1”。
?>注意:PHP可以在函数内部声明静态变量。用途同C语言中。
5,变量的变量,变量的函数

<?
//变量的变量
$a="hello";
$$a="world";
echo "$a $hello";    //将输出"hello world"
echo "$a ${$a}";    //同样将输出"hello world"
?>

<?
//变量的函数

function func_1(){
print("test");
}

function fun($callback){
$callback();
}

fun("func_1");    //这样将输出"test"
?>
6,PHP同时支持标量数组和关联数组,可以使用list()和array()来创建数组,数组下标从0开始。如:

<?
$a="abc";
$a="def";
$b["foo"]=13;
$a[]="hello";    //$a="hello"
$a[]="world";    //$a="world"

$name[]="jill";    //$name="jill"
$name[]="jack";    //$name="jack"
?>
7,关联参数传递(&的使用),两种方法。例:

<?
//方法一:
function foo(&$bar){
$bar.=" and something extra";
}
$str="This is a String,";
foo($str);
echo $str;    //output:This is a String, and something extra

echo "<br>";
//方法二:
function foo1($bar){
$bar.=" and something extra";
}
$str="This is a String,";

foo1($str);
echo $str;    //output:This is a String,

echo "<br>";

foo1(&$str);
echo $str;    //output:This is a String, and something extra
?>
8,函数默认值。PHP中函数支持设定默认值,与C++风格相同。

<?
function makecoffee($type="coffee"){
echo "making a cup of $type.\n";
}
echo makecoffee();    //"making a cup of coffee"
echo makecoffee("espresso");    //"making a cup of espresso"
/*
注意:当使用参数默认值时所有有默认值的参数应该在无默认值的参数的后边定义。否则,程序将不会按照所想的工作。
*/
function test($type="test",$ff){    //错误示例
return $type.$ff;
}
9,PHP的几个特殊符号意义。
   $      变量
&      变量的地址(加在变量前)
@      不显示错误信息(加在变量前)
->      类的方法或者属性
=>      数组的元素值
?:         三元运算子
10,include()语句与require()语句
    如果要根据条件或循环包含文件,需要使用include().
    require()语句只是被简单的包含一次,任何的条件语句或循环等对其无效。
   由于include()是一个特殊的语句结构,因此若语句在一个语句块中,则必须把他包含在一个语句块中。
   
<?
//下面为错误语句
if($condition)
    include($file);
else
    include($other);
//下面为正确语句   
if($condition){
include($file);
}else
{
include($other);
}
?>  11:PHP中str_replace函数的详解
  


函数原型:mixed str_replace(mixed needle,mixed new_needle,mixed haystack[,int &count]);
      needle:要被替换的字符串,new_needle:替换用的字符串,haystack:操作字符串,count:替换次数【可选参数】
   我们重点试验前三个在使用数组是的执行方式:
   
      在都不使用数组时,该函数直接使用new_needle替换所有的needle并返回替换后的字符串。如:str_replace("m","n","my name is jim!")返回ny nane is jin!
   1、只对needle使用数组。
   示例:str_replace(array('m','i'),'n',"my name is jim!");返回:ny nane ns jnn!
   可以看出,函数顺序性的对数组中每个字符串进行替换,并返回替换后的字符串。
      2、只对new_needle使用数组。
   示例:str_replace('m',array('n','z'),"my name is jim!\n")返回:Arrayy naArraye is jiArray!
      该替换比较有意思,如果只对第二个参数使用数组则函数将其作为字符串Array进行使用,将所有的needle替换为了数组。
   3、只对haystack使用数组。
   示例:str_replace("m","n",array("my name is jim!","the game is over!"))该语句执行结果返回一个数组,即分别为传入的两个字符串替换后的结果。
   如果输出数组内容会看到:ny nane is jin! the gane is over!
   4、对needle和new_needle都使用数组。
   示例:str_replace(array("m","i"),array("n","z"),"my name is jim!")返回:ny nane zs jzn!
   查看执行结果可以发现,如果前两个参数都使用数组则函数把数组各个对象项字符串进行了替换,及needle的第一项替换为new_needle的第一项。以此类推。
   如果needle数组比new_deedle长,例如:str_replace(array("m","i","s"),array("n","z"),"my name is jim!");返回:ny nane z jzn!可见,对于needle数组多出来的字符串被替换为了空串。
   如果new_needle数组比needle长,例如:str_replace(array("m","i"),array("n","z","x"),"my name is jim!")返回ny nane zs jzn!可见new_needle多余的项被忽略。
   5、三个参数都使用数组。
   例如:str_replace(array("m","i"),array("n","z"),array("my name is jim!","the game is over"))返回的数组内容:ny nane zs jzn!the gane zs over
   这个比较好理解,对两个字符串分别执行替换。  
  
  
  1、PHP中变量都以$开头,如$a,$ab等都是变量,而函数名和常量则都是直接使用字符串/下划线开头。
2、定义常量使用define(name,value)的方式定义,注意常量只能包含字母数字下划线,且不能以数字开头。
3、定义的变量如果要在输出的字符串中引用则直接写在双引号中即可,如$a=" world";echo("hello$a");输出hello world。
4、php5中变量常量函数命名都支持汉字,但不建议使用。如$我="一个好人";echo($我)输出“我是好人”。
5、php中变量与变量及变量与常量等之间的连接符为.(点号)。如$a="a";$b="$b";echo($a.$b)输出ab。
6、php中全局变量与局部变量的范围完全分离,局部变量在全局不能访问,同时全局变量在函数等内部也访问不到。如

    $xp="global var!";
    function func(){;
      echo($xp);   
    }  将出现找不到变量$xp的错误提示。
7、几个常用的PHP常量:
   __FILE__:当前文件在服务器中的绝对存放路径:如D:\php\test\PHP-1.php
   PHP_VERSION:服务器PHP的版本号,如5.2.3
   PHP_OS:服务器操作系统,如WINNT。
   TRUE/FALSE:代表true/false值。
8、php注释方式有三种,分别为:
   // 单行注释
   /* 多行注释 */
   # unix shell方式注释
9、静态变量其实就是不能在外部访问的全局变量。
10、PHP中对于大小写的区别比较特殊:对于变量和常量定义是区分大小写的,而对于函数和类是不区分大小写的。
如定义了$TEst="test";则echo出$test、$TEST等都不会显示结果test。
而定义函数function test(){echo "test"}则不论使用TEST()还是teST()等都能正确输出结果test。
11、有关php函数参数的几点说明:
      (1)可以为每个参数指定默认值,如function test($arg1="默认值1"){}。
      (2)可以在参数列表中定义某个参数使用传值方式还是传地址方式(使用&+参数变量)。
          如function test(&arg1)。


<?php
    function test($arg1,$arg2="arg2",&$arg3="arg3",$arg4="arg4"){
      $br="\n<br>";
      echo($arg1.$br);
      echo($arg2.$br);
      echo($arg3.$br);
      echo($arg4.$br);
      $arg3="testnew";
    }
    $c="test";
    test("xx","yy",$c);
    echo $c;
?>  
  以上代码将输出:
xx
yy
test
arg4
testnew

  
页: [1]
查看完整版本: PHP基础知识总结