• php编程 之 php基础一


    1,语法

    PHP 脚本在服务器上执行,然后将纯 HTML 结果发送回浏览器。PHP 文件通常包含 HTML 标签和一些 PHP 脚本代码

    比如下面这个:这是一个简单的 PHP 文件实例,它可以向浏览器输出文本 "Hello World!"

    <!DOCTYPE html> 
    <html> 
    <body> 
    <h1>My first PHP page</h1> 
    <?php 
    echo "Hello World!";
    ?>     //print也可以表示输出,//表示注释,和#用于注释是一样的。
    </body> 
    </html>

    注意:PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。

    规则:

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

      2,echo 和print都可以表示在浏览器中输出文本

      3,//单行注释,/* 多行注释*/。

    2,变量  

    <?php
    $x=5;
    $y=6;
    $z=$x+$y;
    echo $z;
    ?>

    规则:

      1,$后紧跟变量,变量名必须以字母或者下划线字符开始,变量名可以包含:数字,字母和下划线,字母区分大小写

      2,变量用等号赋值,变量在第一次被声明的时候就被创建了。

      3,我们不必向 PHP 声明变量的数据类型。PHP 会根据变量的值,自动把变量转换为正确的数据类型。当然,赋值字符串变量的时候还是需要加引号,比如

    <?php
    $txt="Hello world!";
    $x=5;
    $y=10.5;
    ?>

    3,作用域

    <!DOCTYPE html> 
    <html> 
    <body> 
    <?php 
    $x=5;    //这是函数以外的全局变量
    function myTest()
    {
        global $x;    //函数内部想要访问的时候还需要global一下,否则不予显示
        $y=10;
        echo "test result:";
        echo "$x";    //换行符是<br>如果不加换行符,默认连续输出,就像:510hello dahu!
        echo "$y";
    }
    myTest();    //调用函数
    echo "Hello dahu!"; 
    ?> 
    </body> 
    </html>

    拓展:PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。

    4,static作用域

    当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。那就要用static标志一下这个变量。

    <?php 
    function myTest()
    {
        static $y=10;    //声明一下,希望函数结束的时候$y的值得以保存,
    //以便下次再调用这个函数的时候,$y在上一次运行的基础上继续
    $x=5; echo $x; //每次调用的时候$x都是新的,都是5 echo $y; //$y被调用了三次,每次的值分别是:10,11,12 $y++; } myTest(); myTest(); myTest(); ?>

    注意:该函数依然是局部变量,它不会成为全局变量,再一次调用myTest函数时,$y的值会在上一次调用的基础上继续使用。

    5,参数

    参数的作用是通过调用代码把值传递给函数,是一个局部变量。

    <?php 
    function myTest($x)
    {
        echo $x; 
    }
    myTest("hello dahu!");
    ?> 

    6,echo和print

    echo和print都是输出的,区别在于echo可以输出一个或者多个字符串,速度比较快,而print智能输出一个字符串,而且返回值总是为1;

    <?php 
    $y="hello daqing";
    $x="hi dahu";
    $z=666;
    echo $y,$x,$z,"<br>";
    //print $y,$x,$z,"<br>";  print只能输出一个字符串
    echo "let me echo $y <br>";
    print "let me echo $y <br>";
    ?> 

    7,PHP EOF(heredoc)使用说明

    PHP EOF(heredoc)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字串的方法。

    <?php 
    $y="hello daqing";
    $a=<<<EOF
    <br>
    <html><title>untitled document</title>
    echo $y    //输出形如:echo hello daqing
    hello,{$y}    //输出形如:hello,hello daqing
    EOF;
    echo $a
    ?> 
    <?php
    $name="runoob";
    $a= <<<EOF
    "abc" $name    //输出形如:"abc" runoob
    "123"
    EOF;
    // 结束需要独立一行且前后不能空格
    echo $a;
    ?>
    <?php
    echo <<<EOF
    <h1>我的第一个标题</h1>
    <p>我的第一个段落。</p>
    EOF;
    // 结束需要独立一行且前后不能空格
    ?>

    //输出结果:

    我的第一个标题

    我的第一个段落

    注意:上面三行代码的注释部分是后来添加的,不要带着注释去运行

    EOF语法:

      1,开始标志:“<<<EOF”后面不加任何东西,包括空格,结束“EOF;”独占一行,没空格。

      2,位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。

      3,.heredoc常用在输出包含大量HTML语法d文档的时候。比如:函数outputhtml()要输出HTML的主页,就可以写成如下格式:(注意,EOF内的html可以被解析。)

    function outputhtml()
    {
    echo <<<EOT
       <html>
       <head><title>主页</title></head>
       <body>主页内容</body>
       </html>
    EOT;
    }
    outputhtml();

     8,数据类型

    String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。

    测试函数: var_dump() 函数返回变量的数据类型和值。(如果是八进制或者16进制的整数,会自动换算成十进制)

    <?php
    $s='lala';
    var_dump($s);
    echo "<br>";
    $x=234;
    var_dump($x);
    ?>

    我的结果是:C:xampphtdocsdaqing_newdaqing_test.php:7:string 'lala' (length=4)

                             C:xampphtdocsdaqing_newdaqing_test.php:10:int 234

    详解:

      1,字符串,放在单双引号里,

      2,整数型,要有数字没有小数点,可正可负,三种格式:十进制,十六进制(0x为前缀),或者八进制(0为前缀)

      3,浮点数,支持科学计数,如:2.4e3=2.4*10的3次方,8E-5=8*10的负5次方

      4,布尔型,$x=true 或者false,通常用于条件判断

      5,数组,array,一组同类型的集合

    <?php
    $cars=array("Volvo","BMW","Toyota");
    var_dump($cars);    //输出array (size=3)等详细信息
    echo $cars[0] //数组的下标从0开始
    ?>

      6,对象,对象数据类型也可以用于存储数据。在 PHP 中,对象必须声明。必须使用class关键字声明类对象。类是可以包含属性和方法的结构,我们在类中定义数据类型,然后在实例化的类中使用数据类型。

    <?php
    class Person {
        //人的成员属性
        var $name;    //人的名字
        var $age;    //人的年龄
    
        //人的成员 say() 方法
        function say() {
            echo "我的名字叫:".$this->name."<br>";    //相当于python中的self.name
            echo "我的年龄是:".$this->age;
        }
    }    //类定义结束
    
    //实例化一个对象,记得类名前面加上new
    $p1 = new Person();
    //给 $p1 对象属性赋值
    $p1->name = "张三";   //相当于python中的,实例名.类属性名的那种格式
    $p1->age = 20;
    //调用对象中的 say()方法
    $p1->say();
    ?>

      7,null:NULL 值表示变量没有值。

    9,常量

    常量值被定义后,在脚本的其他任何地方都不能被改变。一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。

    语法:使用函数define()

    define ( string $name , mixed $value [, bool $case_insensitive = false ] )

    define()的三个参数分别是name,value, 大小写敏感(case_insensitive,默认区分大小写,默认false,如果设置成true,那就表示大小写不区分)

    实例:

    <?php
    // 区分大小写的常量名
    define("GREETING", "欢迎访问 daqing.com",true);
    echo GREETING;    // 输出 "欢迎访问 daqing.com"
    echo '<br>';
    echo greeting;   // 输出"欢迎访问 daqing.com",不区分大小写
    ?>

     注意,常量是全局变量,在函数内部也可以毫无障碍的使用。

    10 字符串相关的函数:

    字符串的运算符:.  并置运算符。

    实例:

    <?php
    $txt1="hello";
    $txt2="daqing!";
    echo $txt1." ".$txt2;    //txt1和空格并置,然后和txt2并置
    ?>
    //结果:hello daqing!

    字符串长度函数:strlen()

    实例:

    <?php
    $txt1="hello";
    $txt2="daqing!";
    echo strlen($txt1);    //返回长度5
    ?>

    字符串查找函数:strpos()

    strpos() 函数用于在字符串内查找一个字符或一段指定的文本。如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。

    实例:

    <?php
    $txt1="hello";
    echo strpos($txt1,'e');
    ?>
    //返回‘e'所在的位置1。

    11 运算符

    基本运算符:+,-,*,/,%,.,加减乘除取余,并置。

    注意,它的除法不是地板除。php7版本新增了整除函数,intdiv(),用法:echo (intdiv(10,3));

    实例:

    <?php
    $x=10;
    $y=6;
    echo ($x + $y); // 输出16
    echo '<br>'; // 换行
    echo ($x - $y); // 输出4
    echo '<br>'; // 换行
    echo ($x * $y); // 输出60
    echo '<br>'; // 换行
    echo ($x / $y); // 输出1.6666666666667
    echo '<br>'; // 换行
    echo ($x % $y); // 输出4
    echo '<br>'; // 换行
    echo -$x; //输出-10
    ?>

    赋值运算符:和python差不多

    运算符等同于描述
    x = y x = y 左操作数被设置为右侧表达式的值
    x += y x = x + y
    x -= y x = x - y
    x *= y x = x * y
    x /= y x = x / y
    x %= y x = x % y 模(除法的余数)
    a .= b a = a . b 连接两个字符串

    实例:

    <?php
    $x=10;
    echo $x; // 输出10
    $y=20;
    $y += 100;
    echo $y; // 输出120
    $z=50;
    $z -= 25;
    echo $z; // 输出25
    $i=5;
    $i *= 6;
    echo $i; // 输出30
    $j=10;
    $j /= 5;
    echo $j; // 输出2
    $k=15;
    $k %= 4;
    echo $k; // 输出3
    ?>

    递增/递减运算符:

    运算符名称描述
    ++ x 预递增 x 加 1,然后返回 x
    x ++ 后递增 返回 x,然后 x 加 1
    -- x 预递减 x 减 1,然后返回 x
    x -- 后递减 返回 x,然后 x 减 1

    实例;

    <?php
    $t=10;
    echo ++$t;  //$t是递增的,$t每次+1赋值给自己。返回11
    echo "<br>";
    $s=10;
    echo --$s;  //$t是递减的,每次-1赋值给自己,返回9
    ?>

    比较运算符:

    运算符名称描述实例
    x == y 等于 如果 x 等于 y,则返回 true 5==8 返回 false
    x === y 绝对等于 如果 x 等于 y,且它们类型相同,则返回 true 5==="5" 返回 false
    x != y 不等于 如果 x 不等于 y,则返回 true 5!=8 返回 true
    x <> y 不等于 如果 x 不等于 y,则返回 true 5<>8 返回 true
    x !== y 绝对不等于 如果 x 不等于 y,或它们类型不相同,则返回 true 5!=="5" 返回 true
    x > y 大于 如果 x 大于 y,则返回 true 5>8 返回 false
    x < y 小于 如果 x 小于 y,则返回 true 5<8 返回 true
    x >= y 大于等于 如果 x 大于或者等于 y,则返回 true 5>=8 返回 false
    x <= y 小于等于 如果 x 小于或者等于 y,则返回 true 5<=8 返回 true

    实例:

    <?php
    $x=100;
    $y="100";
    var_dump($x == $y);  //返回true
    echo "<br>";
    var_dump($x === $y);  //绝对等于,如果 x 等于 y,且它们类型相同,则返回 true,执行结果false
    echo "<br>";
    var_dump($x != $y);  //返回false
    echo "<br>";
    var_dump($x !== $y);    //返回true,绝对不等于还要判断他们的类型是否相同
    echo "<br>";
    $a=50;
    $b=90;
    var_dump($a > $b);  //返回false
    echo "<br>";
    var_dump($a < $b);  //返回true
    ?>

     逻辑运算符:

     数组运算符:

    运算符名称描述
    x + y 集合 x 和 y 的集合
    x == y 相等 如果 x 和 y 具有相同的键/值对,则返回 true
    x === y 恒等 如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true
    x != y 不相等 如果 x 不等于 y,则返回 true
    x <> y 不相等 如果 x 不等于 y,则返回 true
    x !== y 不恒等 如果 x 不等于 y,则返回 true

    实例:

    <?php
    $x = array("a" => "red", "b" => "green");
    $y = array("c" => "blue", "d" => "yellow");
    $z = $x + $y; // $x 和 $y 数组合并
    var_dump($z);  //数组不好打印,用var_dump()看吧
    var_dump($x == $y);
    var_dump($x === $y);
    var_dump($x != $y);
    var_dump($x <> $y);
    var_dump($x !== $y);
    ?>
    //返回值依次是:
    //array(4) { ["a"]=> string(3) "red" ["b"]=> string(5) "green" ["c"]=> string(4) "blue" ["d"]=> string(6) "yellow" }

    //bool(false) bool(false) bool(true) bool(true) bool(true)

    三元运算符

    语法:

    (expr1) ? (expr2) : (expr3) 

    意思是:expr1 值为 TRUE 时执行 expr2,expr1 求值为 FALSE 时执行 expr3。

    实例:

    <?PHP
    $a=10; $b=20;
    $c=$a>$b?($a-$b):($a+$b);
    //说明:如果变量a大于变量b则执行问号后面的,否则就执行:冒号后面的
    echo $c;
    ?>

    当然写得长一点也没问题,比如:$a>$b ? $x=($a<$c ? $c-$a : $a-$c) : $x=($b<$c ? $c-$b : $b-$c);

    组合比较符:

    语法:$a<=>$b
    如果$a > $b, 返回的值为1 
    如果$a == $b, 返回的值为0 
    如果$a < $b, 返回的值为-1

    组合比较符也适用于字符串,字符串比较的时候,b大于a。和python一样。

    运算优先级表:

    下表按照优先级从高到低列出了运算符。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。

      说明:运算的时候,左 = 从左到右,右 = 从右到左。

    运算方向运算符附加信息
    clone new clone 和 new
    [ array()
    ++ -- ~ (int) (float) (string) (array) (object) (bool) @ 类型和递增/递减
    instanceof 类型
    ! 逻辑运算符
    * / % 算术运算符
    + – . 算术运算符和字符串运算符
    << >> 位运算符
    == != === !== <> 比较运算符
    & 位运算符和引用
    ^ 位运算符
    | 位运算符
    && 逻辑运算符
    || 逻辑运算符
    ? : 三元运算符
    = += -= *= /= .= %= &= |= ^= <<= >>= => 赋值运算符
    and 逻辑运算符
    xor 逻辑运算符
    or 逻辑运算符
    , 多处用到

    括号的使用:

      在php中,运算的时候,括号优先运算。

  • 相关阅读:
    【整数划分系列】
    【51nod-1183】编辑距离
    【河南第十届省赛-D】年终奖金
    【河南第十届省赛-B】情报传递
    【河南省第十届ACM 省赛 A-谍报分析】
    Node.js函数介绍(参数为一个函数)
    Webstorm设置Node.js智能提示
    TortoiseSVN服务器ip地址修改后如何使用
    vue项目组件的全局注册
    ES6 类(Class)基本用法和静态属性+方法详解
  • 原文地址:https://www.cnblogs.com/0-lingdu/p/9581781.html
Copyright © 2020-2023  润新知