php基础知识

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">九&nbsp;&nbsp;九&nbsp;&nbsp;乘&nbsp;&nbsp;法&nbsp;&nbsp;表</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."&nbsp;X&nbsp;".$i."&nbsp;=&nbsp;".$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[,...])



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值