您的位置:首页 > 编程语言 > PHP开发

php基础知识

2014-04-25 10:51 253 查看

apache

        配置文件:

        httpd.conf

            1、配置网站目录,路径用左斜扛,最后不带斜扛

                DocumentRoot "e:/www"

            2、目录设置

                Directory "e:/www"

            3、指定默认首页文件,文件名之间不用逗号分隔

                DirectoryIndex index.html index.htm index.php

          #配置完后要重启apache服务才能生效

php安装

            配置文件

            将目录下的php.ini-dist重命名成php.ini

            1、让apache加载php

                在httpd.conf中最后面输入

               
LoadModule php5_module "c:/php/php5apache2_2.dll"

               
PHPIniDir "c:/php"

               
AddType application/x-httpd-php .php           

            2、测试php是否能正常运行

                新建一个php文件,打印 phpinfo();

                Loaded Configuration File 项目中可以看看当前使用的php.ini的位置

            3、打开短风格与asp风格标签

                short_open_tag = On

                asp_tags = On

            ###修改php.ini后需要重启apache服务###

数据类型

            使用函数var_dump()可以输出变量 的内容、类型、长度(字节)

            (1)标量数据类型

                    a、字符串(string)    $demo = 'test';

                    b、整型(integer)    $demo = 1234;

                                整型可以用十进制,八进制(0开头),十六进制(0 x开头)表示

                                php中所有的整型数都是有符号的,如 123 实际为 +123

                                php中整型 数有最大限制,当超过最大限制时会自动转换成浮点数

                    c、浮点型(float)  $demo = 12.33;

                    d、布尔型(boolean)

            (2)复合数据类型

                    a、数组(array) $demo = array(1,2,5);

                    b、对象(object)

            (3)特殊类型

                    空(Null)、资源(resource)

数据转换

        1、转换成boolean类型

            数值0、空字符串""与''、浮点型0.0、字符串"0"、没有成员的数组、特珠类型null、boolean本身的false

            以上类型转换成boolean类型都是false,其他均为true

            Demo:

                $num = 0;

                var_dump((bool)$num);

        2、boolean类型转换成其他类型

            转换成数值型,flase为0、true为1

            转换成浮点型,false为0、true为1

            转换成字符串,false为""、true为"1"

            Demo:

                $bool = false;

                var_dump((int)$bool);//其它转换类型用float、string、array、object

        3、通过函数转换
            intval() 转换成整型
            floatval()转换成浮点型
            settype($string,type)把$string转换成指定类型

        4、数值与字符串之间的转换

            (1)、数值转换成字符串:在数值外面加个引号;

            (2)、字符串转换成数值

                            从第一个非数字的字符(包含)开始全部舍弃[小数点算数字字符]

                    Demo:

                            $str = "25.3a45";

                            echo $str+3; //output 28.3

变量

        1、变量的概念

            什么是变量:临时存储数据的空间(内存)

            如何回收变量:php中有个引用计数器,每有一个引用指向一个变量时,引用计数器就+1,每减少一个引用时,引用计数器-1

                                        当一个变量的引用计数器计数结果为0时,php的垃圾回收机制就会启动并销毁该变量同时释放空间

        2、变量的命名

            (1)、以$开始

            (2)、以数字、英文字母、下划线组成(第一个字符不能使用数字)

            (3)、驼峰命名法(单词与单词间首字母大写)如:$userInfo

            (4)、如何声明一个变量

                        a、单引号    $demo = '单引号';

                                只能转义单引号和转义符本身,不能解析变量,但是效率比双引号高

                        b、双引号    $demo = "双引号";

                                在双引号中可以解析变量,但是效率比较低

                        c、定界符(heredoc) [定界符是自定义的,开始与结束的定界符需一致]

                                定界符中可以任意写单双引号

                                    $delimiter = <<< 开始定界符

                                                    变量内容

                                    结束定界符;

                                    //注意:结束定界符必须单独一行,并且它前面不能有空格

        3、变量的引用、赋值

                引用:直接调用变量名称

                赋值:$virable = 'value';

        4、php系统预定义的变量

                (1)$_GET    :表单以get方式传递的值[数组形式]

                (2)$_POST:表单以post方式传递的值[数值形式]

                (3)$_FILES:表单中文件浏览框上传的数据信息

                (4)$_REQUEST:get、post、cookie值都保存在这个变量中

                (5)$_COOKIE、$_SESSION、$GLOBALS、$_SERVER

输出语句

            echo $a;

            echo $a,$b,$c; //输出时用多个逗号( , )连接,效率要比用点( . )连接高

            print($a);

            print_r($b);

            注:echo是一个输出语句,没有返回值

                    ptinr()是一个函数,有返回值0或1

                    print_r()也是函数,可以输出复合型数据

转义符

            转义符(\)作用:改变字符原有的作用而使字符原原本本的输出

            在单引号中,转义符只能转义(')单引号本身和(\)反斜扛本身

            在双引号中常用的需要转义的字符:

                (")使用双引号本身、(\)使用反斜扛本身、

                ($)使用$符本身、(r)表示回车、(n)表示换行、(t)表示制表符

常量

        定义:define('name','value');

        说明:

            1、常量的数据类型只能是标量类型

            2、常量一般以大写字母命名

            3、常量的定义与引用引都不用($)

//定义常量:
define('ROOT','php1204/');
//输出常量
echo ROOT;
echo constant('ROOT');
//判断常量是否定义
defined('ROOT')?true:false;


动态变量

            定义:用一个变量来声明另一个变量

//Demo:
$a = 'test';  //$a = 11; 这里可以为数值型
$$a = 'demo'; //等同于 $test = 'demo';
$$$a = 'demo2';//等同于 $demo = 'demo2';


运算符

        1、算术运算符

                定义:( + )、( - )、( * )、( / )、( %)

                    注:浮点数的精度最大为14,当除法运算结果为无理数时,会自动取14位精度

                            浮点数的精度计算为从左向右第一个非0的数开始,算14位

//Demo:
$a = 5;$b = 6;
echo $a+$b;//output 11


        2、字符运算符

                定义:字符串的连接运算符( . )

//Demo:
$a = 'test';$b = 'is';
$c = $a.$b;//output testis


        3、赋值运算符

                ( = ) 最常用的,如定义变量

                ( .=)将运算符前后的变量[后面有可能是字符串等]进行( . )运算后,再重新赋值给左边的变量

                ( += )、( -= )、( *= )、( /= )、( %= )       

                            与( .= )类似,运算符前面先进行相应的运算,再把值赋给左边的变量

//在不声明第二个变量的情况下将两个整型变量的值转变
//Demo:
$num1 = 5;$num2 = 6;
$num1 += $num2;
$num2 = $num1 - $num2;
$num1 = $num1 - $num2;


        4、自增自减运算

                定义:( ++ )、( -- )

                注:自增减运算分为前后自增减

                $a++ $b--:先参加其它运算、再自增减

                ++$a --$b:先自增减、再参加其它运算

//Demo:
$a=5;$b=6;
echo $a+++$b;//++的优先级大于+,结果为($a++)+$b = 11;
echo $a+(++$b);//结果为12,$b先自增为7再加5 =12;


        5、比较运算符

                定义:( > )、( < )、( >= )、( <= )、

                    ( == )等于:两个变量的值相等、

                    ( !=  )、不等于:两个变量的值不相等,也可以写成 <>

                    (=== )恒等于:两个变量的值与数据类型都相等、

                    ( !== )非恒等:值相同但类型不同返回true,类型相同值不相同返回true

                    注:所有的比较运算符运算的结果都是boolean型(true或false)
           
如果比较一个整数和字符串,则字符串会被转换为整数。
           
如果比较两个数字字符串,则作为整数比较。此规则也适用于 switch 语句
           

<?php
var_dump

(0 == "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true
var_dump("1" == "1e0"); // 1 == 1 -> true
switch ("a") {
case 0:
echo "0";
break;
case "a": //这里永远不会被匹配,因为"a"已经被上面的0匹配了
echo "a";
break;
}
?>


        5、逻辑运算符

                        定义:

                            ( ! ):逻辑非:取反,也可以用not,如:$b=true,!$b的值为false

                            ( && ):两边同时为真时则为真,也可以用and,如:true && true 返回true

                            ( || ):两边有一边为真时则为真,也可以用or,如:true||false 返回true

                            ( xor ):异或:两边不同时为真,相同时为假,如:true xor false 返回true

                    注:逻辑运算符的优先级低于比较运算符,and与or的优先级低于&&与|| ,and与or的优先级低于 赋值运算符(=、+=......);

                            当使用&&时,当左边的条件不成立时,右边的语句将不会被执行,俗称短路与

                                如:$a=1;$b=2;$a==$b && print('demo');//这里print('demo')不会被执行;

                            当使用||时,当左边的条件成立时,右边的语句将不会被执行

                                如:$a=2;$b=3;$a < $b || $a++ == $b;echo $a; //这里输出结果为2,因为前面成立,所以$a++未被执行

// 下面的 foo() 不会被调用,因为它们被运算符“短路”了。
$a = (false && foo());
$b = (true  || foo());
$c = (false and foo());
$d = (true  or  foo());

// "||" 的优先级比 "or" 高
$e = false || true; // $e 被赋值为 (false || true),结果为 true
$f = false or true; // $f 被赋值为 false [Altair注:"=" 的优先级比 "or" 高]
var_dump($e, $f);

// "&&" 的优先级比 "and" 高
$g = true && false; // $g 被赋值为 (true && false),结果为 false
$h = true and false; // $h 被赋值为 true [Altair注:"=" 的优先级比 "and" 高]
var_dump($g, $h);


        6、位运算

                定义:在二进制数下进行计算

                    ( ~ )位非:对运算的数中的0与1调换,如: ~7 ,即 ~111 结果为 0

                    ( & )位与:两边都为1则为1,如:7&8,转换成二进制即为 111 & 1000 ,结果为0

                    ( |  )位或:两边有一个为1则为1,如7 | 8,即111 | 1000 ,结果为1111,转回十进制为15

                    ( ^ )位异或:两边不同位的设为1,如 4^5,即 100 ^ 101 ,结果为 001 结果为1

                    注:位左移与位右移都是在二进制反码下进行的操作

                            0的反码与补码都 0,正数的反码与补码都不变

                            负数的反码为符号位不变,其它位取反,负数的补码为反码+1

                    ( << )位左移:$a<<2 即将$a的位左移2位,位左移时,高位溢出,低位补0,每左移一位相当于乘以2

                    ( >> )位右移:$b>>2 即将$a的位右移2位,位右移时,低位溢出,高位补符号数,每右移一次相当于除以2

        7、运算符的优先级

                    (1)小括号、中括号

                    (2)在变量前面的++ 、--

                    (3)(int)(float)(string)(bool)(array)(object)

                    (4) ! (非)

                    (5)( * )、( / )、( %)优先级大于( + )、( - )

                    (6). (字符串连接符)

                    (7) 比较运算符  >    >=    <    <=    <>    优先级大于    ==    ===    !=        !==

                    (8)位运算符    &      |

                    (9)逻辑运算符    &&    ||

                    (10)赋值运算符 =

流程控制语句

        (1)条件语句

                if(条件){条件成立时执行}

                if(){}else{}

                if(){}else if(){}else{} //可以用多个else if,当前面的条件成立时,后面的条件就不会再进行判断

        (2)选择语句

switch($variable){
case "value1":
//语句;
break;
// .......这里还可以放很多个case
case "valuen":
//语句;
break;
default:
//语句;
//[break;]
}


               
每个case后面一定要加break;表示如果case成立时执行完语句后退出语句

                条件语句一般用于对一个范围的判断,switch一般用于对一个点的判断,switch语句效率比if语句要高

        (3)for循环语句

                for(起始点;循环条件;变换步长值){

                        循环体:执行语句

                }

                循环可以嵌套
//输出99乘法表

//Demo:
echo '<h3 style="padding-left:45px;color:green">九  九  乘  法  表</h3>';
echo '<ul style="width:900;list-style:none;color:green;">';
for($i=1;$i<=9;$i++){
for($j=1;$j<=9;$j++){
if($j<=$i){
echo '<li style="width:98px;height:30px;line-height:30px;text-align:center;border:1px solid green;float:left;';
if($i<9){echo "border-bottom:none;";}
if($j<9 & $j< $i){echo "border-right:none";}
echo '">';
echo $j." X ".$i." = ".$j*$i;
echo '</li>';
} else {
echo '<li style="width:98px;height:30px;line-height:30px;text-align:center;border:1px solid #fff;float:left">';
echo '</li>';
}
}
}
echo '</ul>';


            (4)while循环

                        语法:

                            $variable = 初始值;

                            while(循环条件){

                                    循环体..

                                    变换步长值;

                            }

            (5)do...while循环

                        语法:

                            $variable = 初始值;

                            do{

                                循环体;变换步长;

                            }while(循环条件);

                    注:do...while是无条件先执行一次循环体,再去判断条件
            (6)循环退出语句
                       
break [$num]   跳出$num层循环,$num不写默认为1
                                Demo:
                                        for($i=0;$i<100;$i++){
                                            for($j=1;$j<105;$j++){
                                                  if($i==$j){
                                                        break; //这里将跳到$j循环的外面,进入$i的循环
                                                        break 2; //这里将退出两层循环,即跳到了$i循环的外面

                                                   }

                                            }

                                        }

                       
continue  跳出本次循环,并继续执行下一次循环
                                            for($j=1;$j<105;$j++){
                                                  if($j%5==0){
                                                        continue; //当能被5整除就退出本次循环,并进入下一次$j+1的循环

                                                    }
                                            }

退出php程序的函数

        (1) die('msg');输出语句,并且停止执行php程序

        (2) exit('msg');输出语句,并且停止执行php程序

1.语法结构

<?php

  //xml风格

  echo (phpinfo());

?>

<?

  //短风格

  echo(phpinfo());

?>

<script language="php">

  //script风格

  echo(phpinfo());

</script>



2.注释

单行注释  //

     #

多行注释  /*     */

3.数据类型

8中基本数据类型:

  标量类型(String,boolean,Integer,Float)

  复合类型(Array.Object)

  特殊类型(Resource,NULL,mixed.number,callback)



 

4.字符串

单引号 '  '

双引号 "  "

定界符 <<<

单引号和双引号的区别:

  双引号内的转义字符或变量可以被php引擎正确解析,而单引号仅识别\'和\\,其他的将打印为一个单引号和一个反斜杠

 

关于转义字符与html实体(双引号和单引号):

  如果输出的字符将直接打印到浏览器,那么双引号和单引号必须采用html实体表示

  如果双引号和单引号要在浏览器代码中出现,那么就必须采用转义符



 

5.php转义符

\n 换行

\r 回车

\t 水平制表符

\v 垂直制表符

\f 换页符

\\ 反斜线

\$ 美元符号

\‘ 单引号

\" 双引号

文件中的换行符号:

Linux/Unix: \r\n

Windows: \n



6.布尔型

布尔型使用关键字true/false表示

  档转换为布尔型时,以下值被认为false:

  布尔值 false

  整形 0

  浮点型 0.0

  空白字符串或字符串'0'

  没有成员变量的数组

  特殊类型 null

 

所有其他值都被认为true(包含任何资源类型)

7.整数型

整形可以用十进制,十六进制或八进制表示.可添加符号

如果用八进制符号,数字前必须添加0

如果用十六进制表示,数字前必须添加0x

8.浮点型

 

浮点型的字长和平台相关



9.数组

<?php

  $arr=array();

  $arr["username"]="aaa";

  $arr["age"]=20;

  $arr["sex"]="f";

  //输出

   echo "sex:{$arr["sex"]}";

   echo "name:{$arr["username"]}";

?>

10.对象

<?php

  class Person{

   public $username="aaa";//注意属性的修饰符

   public function getMag(){

    echo "username:".$this->username;

   }

  }

 

  $p=new Person();

  $p->getMsg();

?>

11.特殊类型

资源(Resource)

资源是一种特殊的数据类型,用来表示一种php的外部资源,例如数据库访问,文件访问,目录操作,图像操作等

程序员将无法触及这种类型的变量,必须通过专门的函数访问

数据库访问必须通过Mysql函数库,Mysqli函数库或PDO函数库实现

文件访问必须通过FileSystem函数库实现

目录操作必须通过Directory函数库实现

图像操作必须通过GD函数库实现

空值(NULL)



12.伪类型

mixed 可以接受多种不同的类型

number 可以是integer或者float

callback 接受用户自定义的函数作为参数。还可以是一个对象的方法,包括静态类的方法



13.变量

变量是命名内存位置,其中包含数据,可以在程序执行期间进行处理

声明变量: $变量名称;

  php是"弱"语言,其对变量声明没有特殊要求

变量赋值: $变量名称=变量值;

变量的作用域:局部变量(仅限函数内部)和全局变量(函数外部声明的变量,本程序文件中有效)

  函数外使用局部变量值的时候必须透过return

  在函数内部不能直接使用全局变量,要使用global关键字加载全局变量.例子:global $one,$two;

预定义变量:$_ENV,$_GRT,$_POST,$_FILES,$_SERVER,$_COOKIE,$_REQUEST,$_SESSION,$_GLOBALS



14.常量

定义常量:define(string name,mixed value);

常量的数据类型只能为标量类型

常量的名称一般由大写字母组成

常量在定义和引用时无需美元符号

魔术常量:

  _LINE_:文件中的当前行号

  _FILE_:文件的完整路径和文件名

  _CLASS_:类的名称

  _FUNCTION_:函数名称



15.输出语句

echo 输出一个或多个字符

  void echo(string $arg[,string $arg[,...]])

 

print 打印字符

  mixed print(string $arg)

print_r 打印变量易于理解的信息

  void var_dump(mixed $expr[,...])
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: