PHP基础知识总结

看了些PHP的基础知识,自己在这里总结下:

1,在HTML嵌入PHP脚本有三种办法:

//嵌入方式一
echo("test");
</script>

<?
//嵌入方式二
echo "<br>test2";
?>

<?php
//嵌入方式三
echo "<br>test3";
?>

还有一种嵌入方式,即使用和Asp相同的标记<%%>,但要修改PHP.ini 相关配置,不推荐使用。

2,PHP注释分单行和多行注释,和java注释方式相同。
<div "="" src="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHAvd3d3LnBocHdlYmxvZy5uZXQvSW1hZ2VzL091dGxpbmluZ0luZGljYXRvcnMvTm9uZS5naWY=.jpg" align="top">//这里是单行注释
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,变量的变量,变量的函数
<div "="" src="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHAvd3d3LnBocHdlYmxvZy5uZXQvSW1hZ2VzL091dGxpbmluZ0luZGljYXRvcnMvTm9uZS5naWY=.jpg" align="top">//变量的变量
$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,关联参数传递(&的使用),两种方法。例:
<div "="" src="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHAvd3d3LnBocHdlYmxvZy5uZXQvSW1hZ2VzL091dGxpbmluZ0luZGljYXRvcnMvTm9uZS5naWY=.jpg" align="top">//方法一:
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

时间: 2024-09-28 07:28:58

PHP基础知识总结的相关文章

MySQL数据库基础知识

day02 MySQL数据库基础知识 一.基础知识概述: 基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如.才能够对数据库有更深入的了解,道路才会越走越远. 二.基础知识: 1.数据库(database):数据库就好比是一个物理的文档柜,一个容器,把我们整理好的数据表等等归纳起来. 创建数据库命令:        create database 数据库名; 2.查看数据库         show databases; 3.打开指定的数据库         use 

linux入门基础知识及简单命令介绍

linux入门基础知识介绍 1.计算机硬件组成介绍 计算机主要由cpu(运算器.控制器),内存,I/O,外部存储等构成. cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作.不能从硬盘中直接取数据. 内存从外部存储中取出数据供cpu运存.内存的最小单位是字节(byte) 备注:由于32的cpu逻辑寻址能力最大为32内存单元.因此32位cpu可以访问的最大内存空间为:4GB,算法如下: 2^32=2^10*2^10*2^10*2^2 =1024*1024*1024

BroadcastReceive基础知识总结

BroadcastReceive基础知识总结 1.BroadcastReceive简介 BroadcastReceive也就是"广播接收者"的意思,顾名思义,就是用来接收来自系统和应用中的广播 在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能,当网络状态改变时,系统会产生一条广播,接收到这条广播,就能及时的做出提示和保存数据等操作,当电池的电量改变的时候,系统会产生一条广播,接收到这条广播就能在电量低的时候告知用户

基础知识--:before伪元素和:after伪元素

http://book.51cto.com/art/201108/285688.htm 3.7  替换指定位置 大家都知道before和after是前.后的意思.但是奇怪的是,CSS中的:before伪元素和:after伪元素是为源文档中不存在的内容设置样式的. 没有内容怎么设置样式呢?别急!它们有一个content属性,一起使用就可以为某个选择器前.后的内容设置样式了. 下面就来了解一下:before伪元素和:after伪元素的用法. 视频教学:光盘/视频/3/3.7  替换指定位置.avi 

20_Shell语言———VIM编辑器基础知识三之窗口属性定制、配置文件及查找替换功能

Vim编辑器可以让用户按照需求来定制一些使用属性. 一.窗口属性定义 1)显示行号 行号不是内容,只是用来帮助用户确认文本所在的行.在vim编辑器中,如果要显示行号,可以在末行模式下输入: set number 如果想关闭,则可以在功能名称前面加上no,即: set nonumber 命令可以被简写,如set number 可以简写为 set nu:set nonumber 可以简写为 set nonu. 注意,上述设定仅对当前vim的进程有效,一旦当前进程关闭,这些设定就会失效,如果要使设定永

web基础知识(一)关于ajax传值最基础东西

HTTP方法之 GET对比POST GET:从指定的资源请求数据, POST:向指定的资源提交要被处理的数据 GET方法: 请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的: /test/demo_form.asp?name1=value1&name2=value2 有关 GET 请求的其他一些注释: GET 请求可被缓存 GET 请求保留在浏览器历史记录中 GET 请求可被收藏为书签 GET 请求不应在处理敏感数据时使用 GET 请求有长度限制 GET 请求只应当用于取回

线程基础知识

什么是线程: 在一个程序里的一个执行路线就叫做线程(thread).更准确的定义是:线程是"一个进程内部的控制序列" 一切进程至少都有一个执行线程 进程与线程 进程是资源竞争的基本单位 线程是程序执行的最小单位 线程共享进程数据,但也拥有自己的一部分数据 线程ID 一组寄存器 栈 errno 信号状态 优先级 fork和创建新线程的区别 当一个进程执行一个fork调用的时候,会创建出进程的一个新拷贝,新进程将拥有它自己的变量和它自己的PID.这个新进程的运行时间是独立的,它在执行时几乎

Keepalived基础知识

大纲: 一.什么是Keepalived? 二.VRRP协议简介. 三.Keepalived原理. 四.Keepalived配置文件详解. 五.Keepalived配置示例. 一.什么是Keepalived? 什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生,那说到keepalived时不得不说的一个协议就是VRRP协议,可以说这个协议就是

【Python数据挖掘课程】六.Numpy、Pandas和Matplotlib包基础知识

前面几篇文章采用的案例的方法进行介绍的,这篇文章主要介绍Python常用的扩展包,同时结合数据挖掘相关知识介绍该包具体的用法,主要介绍Numpy.Pandas和Matplotlib三个包.目录:        一.Python常用扩展包        二.Numpy科学计算包        三.Pandas数据分析包        四.Matplotlib绘图包 前文推荐:       [Python数据挖掘课程]一.安装Python及爬虫入门介绍       [Python数据挖掘课程]二.K

【深度分解】听趣拍云产品经理剖析视频基础知识(2)

"随着技术的不断进步,视频技术的制作加工门槛逐渐降低,信息资源的不断增长,同时由于视频信息内容更加丰富完整的先天优势,在近年来已经逐渐成为主流.在基础知识(1)里面已经讲了模拟时代和数字化时代的视频技术.接下来将对视频编码与压缩.画面压缩.运动压缩.互联网视频应用的到来做一个详细的介绍." 视频编码与压缩 视频编码与压缩,是数字化视频非常重要的技术,以至于它直接影响到视频在各个领域的应用.如果没有视频编码技术的不断提高,我们今天也不可能在方方面面享受到视频的便利性. 首先,视频编码是一