zoukankan      html  css  js  c++  java
  • 半吊子菜鸟学Web开发 -- PHP学习 1-基础语法

    1索引数组

    $fruit = array("苹果","香蕉","菠萝");
    
    print_r($fruit);
    
    1. 索引数组的初始化,有三种方式:

      • $arry[0] = "苹果";

      • array('0'=>"苹果");

      • array('苹果'),系统默认从索引0开始

    2. 取出索引数组中的值 $fruit0 = $fruit['0'];

    3. for的使用,for的使用与C类似

    4. foreach的使用

    foreach($fruit as $key=>$value)
    {
    
      echo '第'.$key.'值是:'.$value;
    
    }
    

    2关联数组

    关联数组指的是键是字符串的数组

    $fruit = array('apple'=>'苹果','orange'=>'橘子')
    
    print_r($fruit);
    

    关联数组的创立

    
    $arr = array();
    
    $array['apple'] = '苹果';
    

    或者

    
    $arr = array('apple'=>"苹果");
    

    取关联数组的值

    $value = $fruit['banana'];
    
    foreach($fruit as $key=>$value);
    

    3PHP中的对象

    定义一个类

    class Car {
        var $name = '汽车';
        function getName() {
            return $this->name;
        }
    }
    $car = new Car();
    $car->name = '宝马';
    echo $car->getName();
    

    同样类中的变量有public,private,protect

    PHP在类中使用__construct()定义一个构造函数

     class Car {
      function __construct()
      {
         print "构造函数被调用
    ";
      }
      function __destruct()
      {
        print "析构函数被调用
    ";
      }
    }
    

    静态属性与方法可以在不实例化类的情况下调用

    直接使用类名::方法名的方式进行调用。静态属性不允许对象使用->操作符调用。

    静态方法也可以通过变量进行动态调用

    $func = 'getSpeed';
    $classname = 'Car'
    echo $className::$func();
    

    静态方法不能用this调用,可以用self,parent加上::来实现

    方法的重载

    属性的重载通过使用__set,__get,__isset,_unset

    ublic function __set($key, $val) {
            $this->ary[$key] = $val;
        }
        
        public function __get($key) {
            if (isset($this->ary[$key])) {
                return $this->ary[$key];
            }
            return null;
        }
    

    如果调用的方法不存在的时候,将会调用__call方法,如果是静态方法,将会调用__callstatic方法

    public function __call($name, $args) {
            if ($name == 'speedUp') {
                $this->speed += 10;
            }
        }
    

    类和对象的高级特性

    同一个类的两个实例的所有属性都相等时,可以用==来判断

    $a = new Car();
    $b = new Car();
    if ($a == $b) echo '=='; 
    
    if ($a === $b) echo '==='; 
    

    同一个类的两个变量是否为同一个对象的引用的时候,可以用===来判断

    对象的复制,用关键字clone来复制一个对象

    class Car {
        public $name = 'car';
        
        public function __clone() {
            $obj = new Car();
            $obj->name = $this->name;
        }
    }
    $a = new Car();
    $a->name = 'new car';
    $b = clone $a;
    var_dump($b);
    

    对象序列化

    可以通过serialize方法将对象序列化为字符串,用于存储或者传递数据,然后在需要的时候通过unserialize将字符串反序列化成对象进行使用。

    $a = new Car();
    $str = serialize($a); //对象序列化成字符串
    echo $str.'<br>';
    $b = unserialize($str); //反序列化为对象
    var_dump($b);
    
  • 相关阅读:
    java+selenium自动化-IE浏览器搭建自动化环境
    python中的opencv
    随机森林参数说明
    剑指offer
    Python中常用的包--sklearn
    Anaconda安装,jupyter notebook 使用说明
    C++中的Public 、Private、Protected 区别
    C++类中的Static关键字二
    C++类中的Static关键字
    c语言二级指针内存模型
  • 原文地址:https://www.cnblogs.com/daibigmonster/p/8194473.html
Copyright © 2011-2022 走看看