• php(1)—基础


    • 数据类型

    • bool

    -1 和其它非零值(不论正负)一样,被认为是 TRUE

    而只有空和零会被认为false

    • float
    //浮点数比较
    $a = 1.23456789;
    $b = 1.23456780;
    $epsilon = 0.0000001;
    if(abs($a-$b) < $epsilon) {
        echo "true";
    }
    •  heredoc结构
    echo <<<EOT
    My name is "$name". I am printing some $foo->foo.  #foo类中的一个属性
    Now, I am printing some {$foo->bar[1]}.  #foo类中数组元素
    This should print a capital 'A': x41
    EOT;

    在红字之间的 变量将被替换,可以直接转义

    • 字符串
    连接
    $x
    ="5"; $y="7"; $z=$x.$y; echo $z; //57 $x="5"; $y="7"; $z=$x + $y; echo $z; //12

    获取长度
    echo strlen("Hello world!");  //12
    echo strpos("Hello world!","world"); #6 索引从0开始
    echo(022); //0开头代表八进制 0x十六进制 0b二进制
    echo (int) ( (0.1+0.7) * 10 ); // 显示 7!,解决方法去掉前面的int

    // 在单引号字符串中的变量和特殊字符的转义序列将不会被替换
    echo ' ww';
    echo " ee";# ww ee
     

    可以在字符串中直接应用变量

    $a = "f";
    echo "I'm$a";
    • 数组
    $arr = array('apple'=>"苹果",'banana'=>"香蕉");
    $arr0=$arr["apple"];
    if( isset($arr0)) //isset判断变量是否声明
    {print_r($arr0);  #苹果
    }
    $cars=array("Volvo","BMW","SAAB");
    echo "My car is a {$cars[0]}";

    获取数组的长度
    echo count($cars);

    • 对象
    class foo
    {
        function do_foo()
        {
            echo "Doing foo."; 
        }
    }
    $bar = new foo;
    $bar->do_foo();


    class Car { var $color; //类的属性 在对象中函数的定义需要用var var $Size; function Car($color="green",$size=2) { //构造方法 $this->color = $color; $this->Size = $size; } function what_color() { return $this->color; } } function print_vars($obj) { //get_object_vars获取类中所有属性 foreach (get_object_vars($obj) as $prop => $val) { echo " $prop = $val "; } } $herbie = new Car("white"); //实例化 echo "herbie: Properties "; //打印提示 print_vars($herbie); //调用方法打印所有属性
    echo $herbie->Size;  //打印对象属性值
    • Local 和 Global 作用域

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

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

    $x=5;
    $y=10;
    $z=1;
    function myTest() {
        $a="kk";
        global $x,$y;    //获取全局变量
        $y=$x+$y;
        echo  $GLOBALS['z']." ";    //$GLOBALS[index] 的数组中存储了所有的全局变量
    }
    myTest();
    echo $y; // 输出 15 
    • static变量
    function myTest() {
        static $x=0;
        echo $x." ";
        $x++;
      }
    myTest();
    myTest();
    myTest();

    每当函数被调用时,这个变量所存储的信息都是函数最后一次被调用时所包含的信息。

    该变量仍然是函数的局部变量。

    • 常量
    // 定义对大小写不敏感的常量
    define("GREETING", "Welcome to W3School.com.cn!", true);
    echo GREETING;
    echo "<br>";
    // 会输出常量的值
    echo greeting;
    •  foreach 循环
    $colors = array("red","green","blue","yellow"); 
    foreach ($colors as $value) {
      echo "$value <br>";
    }
    • 函数
    function setHeight($minheight=50) {  //设置默认值
      echo "The height is : $minheight <br>";
    }
    setHeight(350);
    setHeight(); // 将使用默认值 50
    setHeight(135);
    setHeight(80);
    • 数组排序
    对数组进行升序排序 - sort()
    $numbers=array(3,5,1,22,11);
    sort($numbers);
    //遍历结果:1,3,5,11,22
    
    对数组进行降序排序 - rsort()
    根据值对数组进行升序排序 - asort()
    $age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
    asort($age);
    
    根据键对数组进行升序排序 - ksort()
    根据值对数组进行降序排序 - arsort()
    根据键对数组进行降序排序 - krsort()
    •  超全局变量

    $GLOBALS —引用全局作用域中可用的全部变量(同上)

    $x = 30;
    $y = 65; 
    function addition() {
       $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
    }
    addition();
    echo $z;

    $_SERVER —保存关于报头、路径和脚本位置的信息。

    echo $_SERVER['SERVER_ADDR'];    //127.0.0.1
    echo "<br>";

    $_REQUEST 用于收集 HTML 表单提交的数据。

    第一个页面index.html
    <form method="post" action="test.php">
        Name: <input type="text" name="fname">
        <input type="submit">
    </form>
    第二个页面test.php 可以获取到传值
    $name = $_REQUEST['fname'];
    echo $name;

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

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

    第一个页面index.php
    <a href="test.php?subject=PHP&who=I">测试 $GET</a>
    第二个页面test.php
    echo  $_GET['who'] ." want to study ". $_GET['subject'] ;

    还有  $_FILES、$_ENV、$_COOKIE、$_SESSION这些

    • 魔术常量 
    __LINE__文件中的当前行号
    echo '这是第 " '  . __LINE__ . ' " 行';
    
    __FILE__文件的完整路径和文件名。
    echo '该文件位于 " '  . __FILE__ . ' " ';
    
    __DIR__文件所在的目录
    echo '该文件位于 " '  . __DIR__ . ' " ';
    
    __FUNCTION__函数名称
    function test() {
        echo  '函数名为:' . __FUNCTION__ ;
    }
    test();
    
    __CLASS__类的名称
    class test {
        function _print() {
            echo '类名为:'  . __CLASS__ . "<br>";
            echo  '函数名为:' . __FUNCTION__ ;
        }
    }
    $t = new test();
    $t->_print();
    
    __TRAIT__代码复用
    从基类继承的成员被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆盖。
    其行为 MyHelloWorld 类中定义的方法一致。
    优先顺序是当前类中的方法会覆盖 trait 方法,而 trait 方法又覆盖了基类中的方法。
    class Base { public function sayHello() { echo 'Hello '; } } trait SayWorld { public function sayHello() { parent::sayHello(); echo 'World!'; } } class MyHelloWorld extends Base { use SayWorld; } $o = new MyHelloWorld(); $o->sayHello(); //Hello World! __NAMESPACE__当前命名空间的名称 echo '命名空间为:"', __NAMESPACE__, '"'; // 输出 "MyProject"
  • 相关阅读:
    28.数组中出现次数超过长度一半的数字(python)
    [leetcode] 145. 二叉树的后序遍历
    [leetcode] 144. 二叉树的前序遍历
    [leetcode] 94. 二叉树的中序遍历
    [leetcode] 93. 复原IP地址
    [leetcode] 206. 反转链表
    [leetcode] 92. 反转链表 II
    [leetcode] 91. 解码方法
    [leetcode] 90. 子集 II.md
    [leetcode] 88. 合并两个有序数组
  • 原文地址:https://www.cnblogs.com/Nora-F/p/9478383.html
Copyright © 2020-2023  润新知