设为首页 收藏本站
查看: 388|回复: 0

[经验分享] PHP基础知识总结

[复制链接]

尚未签到

发表于 2015-8-28 12:53:36 | 显示全部楼层 |阅读模式
看了些PHP的基础知识,自己在这里总结下:
1,在HTML嵌入PHP脚本有三种办法:

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

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

function test2(){
    global $a;
    echo $a;
}
test2();    //这样可以输出结果&#8220;1&#8221;。
?>
注意: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[0]="abc";
$a[1]="def";
$b["foo"]=13;
$a[]="hello";    //$a[2]="hello"
$a[]="world";    //$a[3]="world"

$name[]="jill";    //$name[0]="jill"
$name[]="jack";    //$name[1]="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($我)输出&#8220;我是好人&#8221;。
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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-105552-1-1.html 上篇帖子: PHP eval() 函数 下篇帖子: 提交表单后 PHP获取提交内容 的方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表