zoukankan      html  css  js  c++  java
  • php基础语法知识笔记(一)

    共享一份我自己学习php基础语法知识的笔记,这是第一弹,明天共享第二弹。

    1.判断php短标记<??>是否适用,查看php配置文件php.ini中的"short_open_tag = On"
    2.官方的标记<?php?>  , <script language="php"></script>
    3.单行注释 //或者#  
     /*
      多行注释
     */
    4.变量  $str   字母数字下划线 ,数字不能作为开头,大小写敏感,尽量用有意义的英文。
    5.注销变量函数 unset($str)  检查变量是否被定义 isset($str)
    6.可变变量
    $a = 'ok';
    $ok = 123;

    echo $$a; //可变变量 输出123
    7.  连接符.
    $str = 'world';
    echo 'hello'.$str;
    8.转义字符 \
    $str="a'b\"c";
    9.数组
    $arr = array(34,6,9=>7,'abc','name'=>'付潭');

    print_r( $arr );   //print_r() 用于输出数组,而不是用echo
    输出结果:
    Array ( [0] => 34 [1] => 6 [9] => 7 [10] => abc [name] => 付潭 )

    10.数字
    $str = 1;
    echo 'asd'+1;   // 1
    echo '1'+1;    //2

    11.单引号 与 双引号的区别
    $str = '你好';  
    echo '$str';        //$str
    echo '<br />';
    echo "$str";        //你好  双引号 可以解析变量以及特殊字符"\n","\t"等等

    $str1 = '你好\n是我';
    $str2 = "你好\n是我";         // "\n" 属于特殊字符(换行),因此双引号可以解析
    $str3 = "你好\t是我";
    echo $str1;
    echo $str2;
    echo $str3;

    字符串中没有变量的时候 ,尽量使用单引号。
    有变量的时候使用双引号。
    $s = 'nihao';
    echo $s.'某某';
    echo "{$s} 某某";
    "贪婪模式" 解析变量直到不符合命名规则的字符
    \ 转义字符 将变量转成普通的字符串

    $ok = '你好';
    echo "$okk";        //输出为空,贪婪模式
    echo "{$ok}k";        //输出“你好k”
    echo "$ok k";        //输出“你好 k”
    echo "\$ok k";        //输出“$ok k”,转义字符
    echo "$ok'k";        //输出“你好'k”
    echo $ok."k";        //输出“你好k”

    变量可以包含中文


    12.自定义字符串
    echo '<img src="images/tupian.jpg" width=\'200\' />';
    $str = "tupian.jpg";
    echo '<img src="images/'.$str.'" width=\'200\' />'
    //自定义字符串,标准格式
    echo <<< ABC
        <img src="images/$str" width='200' />            //中间当做 HTML区域 ,变量可以直接写  
    ABC;
    第一行要顶格写
    第一行要独占一行,后面不能跟任何东西(包括注释和空格)
    最好一行也要顶格和独占一行


    13.错误输出
    error_reporting(E_ALL | ERROR | PARSE | WARNING | NOTICE );

    //在网页中加入报错程序代码

    14.常量与变量
    a.常量一般用大写,变量一般用小写。
    b.常量一般不加$,而变量一定要加$。
    c.常量在函数内部直接就有效,不需要声明为全局变量。
    同一个常量不能声明两次

    15.变量的作用域
    函数内部与外部没有联系。

    $str = 12;

    function test()
    {    
        //声明全局变量,必须写在函数内部,外面是没有用的,而且是一次性有效。
        global $str;
        echo $str;
        $str = 11;
    }
    test();   //12

    function test2()
    {
        echo $str;
    }
    echo $str; //11

    test2(); //不输出

    声明静态变量
    function test()

    {
        static $a=0;    //声明为 静态变量 ,只在函数中运行一次,局部变量,只在函数内部有效
        echo $a;    
        $a++;
    }
    test();        //0

    test();        //1

    test();        //2

    echo $a;    //输出空


    16.连接符.
    echo '12' , $str , '23';  //在echo中 ,","要比"."更有效率,echo是唯一可以用逗号当做连接符的

    17.输出
    $a = array(2,57,8,9);
    echo $a;        //Array,可以同时输出多个字符串
    print $a;          //Array,只能输出一个字符串
    print_r($a);        //Array ( [0] => 2 [1] => 57 [2] => 8 [3] => 9 )

    18.引用
    @ include('../inc/header.php');        //继续运行,警告,@号不提示报错,
    require('header.php');            //终止程序,报错
    header.php直接复制需要引用的代码,文件中不需要再写头部声明文件等。
    被引用的文件作用域相通,可以直接引用里面声明的变量。

    19.变量可以定义两次(后者覆盖前者),而函数不能。
    要注意引用的文件include('yinyong.php')/require('yinyong.php');不能与现有的函数有相同的。
    php5中,两个引用语句如果引用相同文件,会默认为一个。但是为保证兼容,不能写重复。

    20.include_once('header.php');/require_once('footer.php');只包含一次,会自动判断有没有引用相同的文件。但影响执行效率。

    21.__FILE__,内置常量
    echo __FILE__;            //输出文件的物理地址,F:\php\www\php_basic.php 只认代码写入的页面,不管是否被引用。
    echo dirname(__FILE__);        //输出文件目录,不包括文件名,F:\php\www
    include( dirname(__FILE__).'/../php_basic.php');    // 利用dirname()输出文件地址,'/../php_basic.php'则代表当前目录的上一级目录中的php_basic.php文件。这是用的是正斜杠“/”,而不是因为地址栏上显示的反斜杠“\”,因为只有windows可以识别,正斜杠可以兼容windows和linux系统。

    如果文件被其他文件引用,include和require语句就必须写成这种形式。

    “../”适合于简单的一个文件包含于另一个文件。
    而dirname(__FILE__) 大多适合多层,更复杂多多文件包含,维护起来更容易。

    如果仅仅是a.php文件包含b.php文件,可以直接用 include的dirname(__FILE__)或者   “../”  均可,一般不会出错的。
    但往往是 a包含了 b文件,另外c.php包含了a文件
    那么使用  “../”  的话,就会造成c包含a时再载入b文件时路径出错,而使用dirname(__FILE__)时,c包含a时会以dirname(__FILE__)映射出c和a的路径关系,a再到包含b文件时,使用dirname(__FILE__),会映射出a和b的相应目录关系。这个就不会造成不同目录多次包含时路径出错!

    注意: __FILE__,代表 这个代码所在文件的文件名, 比如 c用dirname(__FILE__)包含a(此时就是c引用a时使用的是绝对路径),那么 __FILE__代码是c文件的绝对路径名,而c包含a后,a再用dirname(__FILE__)包含b时,那么__FILE__在执行时就是a文件的绝对路径名,这个依次类推,当c在调用时,通过绝对路径找到a文件,a 文件又通过绝对路径找到b。这样的包含及路径永远也不会出错!

    如果只是使用“../”  的话,c在调用时通过相对路径找到a,这里没有错,但是此时a里面包含b的也是使用“../”,此时是相对于c 的相对路径查找b,当然是错的!

  • 相关阅读:
    十大排序算法总结
    Java Web之监听器
    JVM 内存模型
    设计模式--装饰者模式和建造者模式
    Java Web之过滤器
    jsp-servlet篇(三)
    jsp- servlet篇(二)
    jsp- servlet篇(一)
    xml和xml解析
    k8s环境部署(一)
  • 原文地址:https://www.cnblogs.com/futan/p/php_basic.html
Copyright © 2011-2022 走看看