• 18101055830
  • PHP基础知识
    当前位置: 主页 > 程序知识 >
    来源: 厦门点燃未来网络科技有限公司     发布时间: 2017-10-01 23:11

    来历

      PHP于1994年由Rasmus Lerdorf创建,刚刚开始是用Perl语言编写的程序。后来又用C语言重新编写。
    基本语法

      1: 当解析一个文件时,PHP 会寻找起始和结束标记: <?php 和 ?> ,php能够潜入任何文件中, php标记之间的代码能被php解析器解析,返回给前端

      2: php也允许使用短标记<?  ?> ,   需要修改php.ini中的short_open_tag指令,  也可以在编译php的时候使用 --enable-short-tags 参数, 如果是php5.4以后的版本, 默认开启短标记, 

      3:如果php文件内部内容为纯php代码, 那就不需要添加结束标记。 

      4:注意:如果php的结束标记后面有空格或者换行,会被php解析发送到前端, 为了避免这种问题, 可以养成不写结束标记的习惯

    可以将php代码和html分离, 这种写法不是很常用:

    <?php if(1==1) :?>
        "1==1";
    <?php else: ?>
        "1==0";
    <?php endif; ?>

      利用短标记输出变量, 把echo替换成 = 号即可:

    <? 
    $a = 1;
    $b = 2;
    ?>
    <?= $a + $b ?>

     

    PHP的基本数据类型

      四种基本类型: boolean, integer, float( double, float和double是同时存在的 ),  string 

      三种复合类型: array,object, callback

      特殊类型:resource, NULL

      类型之间的转换:

      该语言的类型转换和C语言和java一摸一样, 在变量前添加一个小阔号,小括号内部为转换的数据类型:

    <?php
        $foo = (int) $bar;
        $foo = ( int ) $bar;
    ?>

      也可以使用gettype和settype进行类型的转换:

    <?php
        $var = 1234;
        settype($var,"string");
        echo $var." ".gettype($var);
    
    ?>

    基本类型扩展

      布尔值:true, false

      数字int:ℤ = {..., -2, -1, 0, 1, 2, ...}  集合中的数字, 只要整数, 二进制开头比如:0b111111, 十六进制的整数,以0x开头比如:0xabc;

      浮点数float(double):只要是有小数位的都是浮点数, 如果要做小数位的操作,可以用浮动数, 但是还是会存在精度问题;

      字符串细说:

      双引号之间的变量会被解析:

    <?php
    $user = "test user";
    echo "my test user is $user";

      更加细致的方法是用花括号, $符号放在花括号外面或者花括号里面都可以:

    <?php
    $user = "test user";
    echo "my test user is ${user}";
    echo "my test user is {$user}";

       字符串可以使用下标索引快速获取字符, 使用{}或者[]都可以

    <?php
    $user = "abcdef";
    echo $user{0};
    echo $user[0];

      可以利用{}快速删除或者修改,或者增加字符

    <?php
    $user = "abcdef";
    //删除第二个字符
    $user[1]="";
    //编辑第二个字符
    $user[1]="2"
    //在索引为29的位置新增一个字符 , 该字符串数组会自动变长
    $user{30} = "d";
    echo $user; 

      headdoc的写法相当于php双引号的写法:

    <?php
    
    $a = "test";
    echo "<div>
            \"{$a}\"
        </div>
    ";
    
    //headdoc相当于双引号的写法
    echo <<<EOF
        <div>
            "{$a}"
        </div>\n
    EOF;

      nowdoc相当于php单引号的写法, 所有的数据都不被解析:

    <?php
    echo <<<'EOD'
        <div>{$a}</div>
    EOD;

      php字符串的常用函数:http://naotu.baidu.com/file/1e46776d03f11206fc2254b36e8e0ee1?token=0ad794e52225d751

    数组对象

      php的数组即是数组也是对象(hashmap),索引自增, 对象的key值也是唯一的

      php5.4起, 可以使用中括号进行变量的声明

    $arr = ["a","b"]

      对象的key 可以是 integer 或者 string。value 可以是任意类型, 没有键名的索引默认为当前数组最大索引+1, 如果没有最大索引, 键名为0开始, 稳步递增

      如果删除数组中的数据, 并给数组添加数据, 索引并不会从头开始:

    <?php
    $arr = array('a','b','c','d');
    foreach( $arr as $i => $it ) {
        unset( $arr[$i]);
    }
    $arr[] = 'e';
    var_dump( $arr );
    ?>

      通过array_value重建索引:

    <?php
    $arr = array('a','b','c','d');
    foreach( $arr as $i => $it ) {
        unset( $arr[$i]);
    }
    $arr1 = array_values($arr);
    $arr1[] = 'e';
    var_dump( $arr1 );
    ?>

      数组的赋值是复制, 并不是引用, 仿佛C语言中调用了数组的复制构造函数, 如果要让数组出现引用关系, 需要&,引用符:

    <?php
        $arr = array('a','b','c','d');
        $arr1 = $arr;
        $arr1[0] = "0";
        var_dump($arr1);
        printf("输出之前的$arr:\n");
        var_dump($arr);
    ?>

    函数

    <?php
    class Fn{
        function dofn(){
            printf("do i");
        }
    };
    $fn = new Fn();
    $fn->dofn();

      如果数组转化为对象, 只能访问对象的索引的属性, 索引的属性无法访问, 必须通过 foreach 迭代访问:

    <?php
    $arr = ["a"=>"aa","b","c","d"];
    var_dump($arr);
    $obj = (object)$arr;
    echo $obj->{"a"}; //输出aa
    echo $obj->{"1"}; //无输出

      如果是基本的数据属性, 转化为对象, 通过访问对象的scalar,可以获取到原始数据:

    <?php
    $obj = (object) 'nihao';
    echo $obj->scalar; //输出 nihao

      资源类型

      由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此将其它类型的值转换为资源没有意义。

      回调函数

      回调函数像是java的反射, 通过一个字符串即可执行一个函数:

    <?php
    
    function fn(){
        echo "fn is fn\n";
    }
    
    call_user_func("fn");
    
    class Fn{
        function en(){
            echo "Fn->en\n";
        }
    }
    
    $f = new Fn();
    call_user_func(array($f,"en"));

      匿名函数,函数本无名, 只是把函数赋给一个变量:

    <?php
    $fn = function() {
        echo "fn\n";
    };
    
    function testClosure(Closure $callback) {
        echo "run run\n";
        $callback();
    }
    
    testClosure( $fn );

    作者: NONO
    出处:http://www.cnblogs.com/diligenceday/
    企业网站:http://www.idrwl.com/
    开源博客:http://www.github.com/sqqihao
    QQ:287101329
    微信:18101055830

    (责任编辑:admin)
    文章出自: 厦门点燃未来网络科技有限公司 http://www.idrwl.com如转载请注明出处!
    • 网站建设找点燃
    • 重视设计 重视服务 重视沟通 用诚信和口碑打造品牌!
    • 18101055830   
    • 客服①: 在线洽谈
  • 手机:18101055830
  • 地址:厦门翔安新店镇西岩石路10号 网址:www.idrwl.com 邮箱 sqqihao@163.com
  • 版权所有 2015-2023(C) 厦门点燃未来网络科技有限公司    闽ICP备17019404号-1