zoukankan      html  css  js  c++  java
  • PHP开发基础知识

    PHP的学习

    PHP脚本以<?php 开始 ?>结束

    <?php

    //此处写代码

    ? >

    php默认文件扩展名.php

    php文件通常包含HTML标签以及一些PHP脚本代码

    “echo”是php输出函数,下面是一个简单例子

    <!DOCTYPE html>

    <html>

    <body>

     

    <h1>我的第一张php页面</h1>

    <?php

    echo “hello world!”;

    ? >

    </body>

    </html>

    PHP大小写敏感:在PHP中,所有用户定义的函数、类和关键词(例如if、else、echo等)以下三种写法都是合法的

    echo

    ECHO

    EcHo

    但是在对变量定义时时敏感的,如下

    echo "My car is " . $color . "<br>";

    echo "My house is " . $COLOR . "<br>”; 

     echo "My boat is " . $coLOR . "<br>";

    只有第一句会输出变量的值。

    变量是存储信息的容器

    $x = 5;

    $y = 6;

    $z = $x+$y;

    类似于代数运算:

    x = 5;

    y = 6;

    z = x + y;

    PHP变量的名称可以取得很短如x,y;也可以取得很长如carname、peoperpassword。

    PHP变量的规则

    1.变量以$符号开头,其后是变量的名称

    2.变量名称必须以字母或下划线开头

    3.变量名称不能以数字开头

    4.变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)

    5.变量名称对大小写敏感($y 与 $Y 是两个不同的变量)

    PHP变量名称对大小写敏感

    PHP没有为其创建的命令,会在第一次赋值时被创建(无需告诉类型,php会自动转化正确的数据类型)

    local和global作用域

    函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。

    函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。

    提示:若果想要输出函数内部的变量,那么请在函数内部变量前加global,另一方面如果函数内部想访问全局变量可以使用$GLOBALS[index]数组,下标存有变量名:如下示:

    <?php

    $x=5;

    $y=10;

    function myTest() {

       $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];

    myTest();

    echo $y;

    ?>

    static关键词

    函数执行后,会删除所有的变量,如果想保留变量的值需要在第一次声明变量时使用static关键词。

    注意:

    html中可以嵌套PHP脚本,php中的echo输出语句也可以包含html标记(试验一下,如果php里嵌套html的话,在thinkPHP框架中的Runtime中的Cache中会定位到错误的位置)

    php中的输出语句echo print

    echo可以输出一个以上的字符串

    print只能输出一个字符串,并始终返回1

    提示:echo的效率要比print好

    数据类型:

    php字符串:字符串是字符序列,可以使用单引号或者双引号:如:”hello world!” ‘hello world’ 具有同样的效果。

    php整数:不能含有空格、逗号、小数点。整数正负均可,十进制、十六进制(前缀是0x)或八进制(前缀0)。

    var_dump()会返回数据的类型和值,如:$X= 3690 ; var_dump($x); 会返回int(3690).

    php浮点数:浮点数是由小数和指针形式的数字。

    php逻辑:逻辑是true或false,如$x = true;$y = false.

    php数组:数组可以在一个变量中存储多个值,用var_dump()返回变量的数据类型和值,如:

    <?php 

    $cars=array("Volvo","BMW","SAAB");

    var_dump($cars);

    ?>

    返回的数据是:array(3) { [0]=> string(5) "Volvo" [1]=> string(3) "BMW" [2]=> string(4) "SAAB” }

    简单解释一下:array(3)顾名思义是指这个数组有三个值,【0】=>string(5)”Volvo” 是指数组下标中为0的值是个字符串类型,数组长度是5,值是Volvo。

    php对象:对象是存储数据和有关如何处理数据的信息的数据类型,在php中必须明确的声明对象。声明对象的类使用class关键词。类中包含属性和方法的结构。然后在对象类中定义数据类型,然后在该类的实例中使用此数据类型。

    php NULL值:NULL表示变量无值,NULL值标示变量是否为空,也用于区分空字符串和空值数据库,可以把值设置成NULL,将变量清空。如:

    <?php

    $x="Hello world!";

    $x=null;

    var_dump($x);

    ?>

    返回的结果就是:NULL

     

    PHP字符串函数

    php strlen()函数:返回字符串的长度,以字符计,如:

    echo strlen(“hello world!”);返回的结构就是12.

     

    php strpos()函数:用来检索字符串内指定的字符或文本。若找到则返回首字符的位置,否则返回FALSE,如:

    echo(“hello world!”,“world”);输出的结果就是6。因为字符串的首字符位置是0.

     

    php常量

    常量是单个值得标示符,在脚本中无法改变其值,且常量名称前是没有$符号(与变量不同,常量在整个脚本中是自动全局的)

    常量的定义:设置常量使用define()函数,使用三个参数:

    1.首个参数定义常量的名称;

    2.第二个参数定义常量的值;

    3.可选的第三个参数规定常量名是否对大小写敏感。默认是fales。

    如:敏感:define(“GREETING”,”Welcome to W3School.com.cn!”);echo GREETING;

    不敏感:define(“GREETING”,”Welcome to W3School.com.cn!”,true); echo greeting;

     

    php运算符

    php算数运算符:

    直接实例搞起来,如:

    <?php

    $x = 11;

    $y = 6;

    echo($x + $y);//进行+运算

    echo($x -  $y);//进行-运算

    echo($x * $y);//进行*运算

    echo($x / $y);//进行除法运算

    echo($x % $y);//进行曲模运算

    ?>

    php赋值运算符

    php中的赋值运算符是=,认为右侧值赋值给左侧值。

     

    php字符串运算符

    运算符 . 串接;

    运算符 .= 串接赋值。

    如:

    $a = “hello”;

    $b = $a.”world!”;

    echo $b//会输出hello world!

     

    $x = “helo”;

    $x .= “world!”;

    echo $x//会输出hello world!

     

    PHP递增/递减运算符

    ++$x 表示:加1后返回

    $x++ 表示:返回后加1

    --$x 表示:减1后返回

    $x— 表示:返回后减1

     

    php比较运算符

    == 等于

    ===全等 类型相同

    != 不等于

    <>不等于

    !== 不全等 类型不相同返回true

    > 大于

    <  小于

    >= 大于或等于

    <= 小于或等于

    如:

    $x = 100;

    $y = “100”;

    var_dump($x === $y) 返回bool(false) 因为类型不同

    var_dump($s !== $y) 返回bool(true) 因为类型不同

     

    php逻辑运算符

    and  or xor异或

    && 与

    || 或

    ! 非

     

    PHP条件语句

    使用条件语句的目的是根据条件选择执行的任务。

    1.if 语句

    2.if…else语句

    3.if…elseif…else语句

    4.switch语句

    switch语句:有选择的执行代码块,避免冗余的if...elseif...else代码块

     

    PHP while循环

    一块代码需要重复执行时使用

    1.while

    2.do…while 先执行一次,再判断是否循环执行

    3.for

    4.foreach 遍历数组中的每个元素并循环代码块’(只适用于数组)

    如:

    <?php

    $colors = array(“red”,”green”,”blue”);

    foreach($colors as $value){

    echo “$value”<br>

    }

    ?>

    PHP函数

    php中的内建函数超过1000个,用户也可以自建函数

    函数可以在程序中重复使用的代码块,页面加载是函数不会立即执行,只有在调用的时候才会执行。

    提示:函数名对大小写不敏感,函数声明以function开头。函数名应该能反映出函数要执行的任务。

    函数中的参数:在括号中定义,如果定义多个可以用逗号隔开

    默认参数:如果没有传递参数则使用默认值。

     

    PHP数组

    数组能够在单个变量中保存一个或多个值。

    php中使用 array()函数创建数组

    1.索引数组:带有数字索引的数组

    2.关联数组:带有指定建的数组

    3.多维数组:包含一个或多个的数组的数组

    count()函数用来获取数组的长度,如:count($colors);

    关联数组:

    关联数组是使用分配给数组的指定键的数组,两种创建方式:

    $age = array(“tom”=>”20”,”tim” = >”18”,”jock” = >”22”);

    或者:

    $age[’tom’] = “20”;

    $age[’tim’] = “18”;

    $age[‘jock’] = 22;

    遍历关联数组:

    <?php

    $age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");

     

    foreach($age as $x=>$x_value) {

       echo "Key=" . $x . ", Value=" . $x_value;

       echo "<br>";

    }

    ?>

    输出结果:

    Key=Bill, Value=35

    Key=Steve, Value=37

    Key=Peter, Value=43

    php数组排序函数

    sort():以升序对数组排序

    rsort():降序对数组排序

    asort():根据值,以升序对关联数组排序

    ksort():根据键,以升序对关联数组排序

    arsort():根据值降序排序

    krsort():根据键降序排序

    如:根据键值进行升序排序

    <?php

    $age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");

    ksort($age);

     

    foreach($age as $x=>$x_value)

        {

        echo "Key=" . $x . ", Value=" . $x_value;

        echo "<br>";

        }

    ?>

    输出结果是:

    Key=Bill, Value=35

    Key=Peter, Value=43

    Key=Steve, Value=37

    PHP全局变量-超全局变量

    意味在脚本的全部作用域都可以使用

    超全局变量有:

    $GLOBALS

    $_SERVER

    $_REQUEST

    $_POST

    $_GET

    $_FILES

    $_ENV

    $_COOKIE

    $_SESSION

    $GLOBALS:引用全局作用域可用的全部变量(php脚本任意位置均可访问$GLOBALS[index]数组存储所有的全局变量)

    <?php 

    $x = 30;

    $y = 65; 

     

    function addition() {

       $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];

    }

     

    addition();

    echo $z;

    ?>

    输出95.

    $_SERVER:这种超全局变量保存关于报头、路径、和脚本位置的信息。

    <?php 

    echo $_SERVER['PHP_SELF'];

    echo "<br>";

    echo $_SERVER['SERVER_NAME'];

    echo "<br>";

    echo $_SERVER['HTTP_HOST'];

    echo "<br>";

    echo $_SERVER['HTTP_REFERER'];

    echo "<br>";

    echo $_SERVER['HTTP_USER_AGENT'];

    echo "<br>";

    echo $_SERVER['SCRIPT_NAME'];

    ?>

    输出:

    /example/php/demo_php_global_server.php

    www.w3school.com.cn

    www.w3school.com.cn

    http://www.w3school.com.cn/tiy/s.asp?f=demo_php_global_server

    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36

    /example/php/demo_php_global_server.php

    $_REQUEST:用于收集HTML表单提交的数据,下面的例子展示了一个包含输入字段及提交按钮的表单。当用户通过点击提交按钮来提交表单数据时, 表单数据将发送到 <form> 标签的 action 属性中指定的脚本文件。在这个例子中,我们指定文件本身来处理表单数据。如果您需要使用其他的 PHP 文件来处理表单数据,请修改为您选择的文件名即可。然后,我们可以使用超级全局变量 $_REQUEST 来收集 input 字段的值:

    <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">

    Name: <input type="text" name="fname">

    <input type="submit">

    </form>

     

    <?php 

    $name = $_REQUEST['fname']; 

    echo $name; 

    ?>

    $_POST:PHP $_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。

    下面的例子展示了一个包含输入字段和提交按钮的表单。当用户点击提交按钮来提交数据后,表单数据会发送到 <form> 标签的 action 属性中指定的文件。在本例中,我们指定文件本身来处理表单数据。如果您希望使用另一个 PHP 页面来处理表单数据,请用更改为您选择的文件名。然后,我们可以使用超全局变量 $_POST 来收集输入字段的值:

    <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">

    Name: <input type="text" name="fname">

    <input type="submit">

    </form>

     

    <?php 

    $name = $_POST['fname']; 

    echo $name; 

    ?>

    $_GET:$_GET 也可用于收集提交 HTML 表单 (method="get") 之后的表单数据。

    $_GET 也可以收集 URL 中的发送的数据。

    假设我们有一张页面含有带参数的超链接:

    <a href="/demo/test_get.php?subject=PHP&web=W3school.com.cn">测试 $GET</a>

  • 相关阅读:
    slf4j绑定log4j失败
    [转]activiti5用户任务分配
    关于ajax提交的公共接口的一大用处
    jQuery插件开发方式
    centos7安装mysql
    Centos7安装JDK
    奇葩问题:spring+mybaits项目突然出现其中一些Mapper类找不到
    JAVA多线程下,获取递增的序列号
    库存扣减的流水账记录问题
    My97DatePicker使用的问题
  • 原文地址:https://www.cnblogs.com/li--nan/p/4484834.html
Copyright © 2011-2022 走看看