您的位置:88bifa必发唯一官网 > 八八必发娱乐 > 用array()来创建数组会尤其有益于一点

用array()来创建数组会尤其有益于一点

发布时间:2019-08-06 08:43编辑:八八必发娱乐浏览(179)

    1. 数组
      php教程的数组其实是一个关联数组,或者说是哈希表。php不需要预先声明数组的大小,可以用直接赋值的方式来创建数组。例如:

    //最传统,用数字做键,赋值

    $state[0]="beijing";
    $state[1]="hebei";
    $state[2]="tianjin";

    //如果键是递增的数字,则可以省略

    $city[]="shanghai";
    $city[]="tianjin";
    $city[]="guangzhou";

    //用字符串做键

    $capital["china"]="beijing";
    $capital["japan"]="tokyo";

    用array()来创建数组会更加方便一点,可以将数组元素作为array的参数传递给他,也可以用=>运算符创建关联数组。例如:

    $p=array(1,3,5,7);

    $capital=array(“china”=>”beijing”, “japan=>”tokyo”);

    array其实是一种语法结构,而不是函数。和array类似,还有一个list(),它可以用来提取数组中的值,并给多个变量赋值。例如:

    list($s,$t)=$city;
    echo $s,' ',$t;

    输出结果:shanghai tianjin

    注意,list方法只能用于由数字索引的数组。

    php内建了一些常用的数组处理函数,具体可以参考手册。常用的函数举例如下,count或者sizeof可以得到数组的长度,array_merge 可以合并两个,或者多个数组,array_push(pop)可以像堆栈一样使用数组。

     

    <?php
            $state[0]="beijing";
            $state[1]="hebei";
            $state[2]="tianjin";

            $city[]="shanghai";
            $city[]="tianjin";
            $city[]="guangzhou";

            $capital["china"]="beijing";
            $capital["japan"]="tokyo";
           
            echo count($city),'<br/>';
             array_push($capital,"paris");
            $newarray=array_merge($city,$capital);
            foreach($newarray as $elem)
                echo $elem.’<br/>’;
      
    ?>

    输出结果为:

    3
    shanghai
    tianjin
    guangzhou
    beijing
    tokyo
    paris

    1. 类和对象
      php5开始对面向对象编程有了很好的支持。php中的类的概念和其他面向对象的语言比如c#是十分相似的,它也是一个值和方法的聚合体,使用class关键字定义。例如:

    <?php

          class authuser {
              protected $username;
              protected $password;
              public function   __construct($username,$password) {
                  $this->username=$username;
                  $this->password=$password;
              }

              public function getusername() {
                  return $username;
              }

              public function changepassword($old,$new) {               
                  if($this->password==$old) {
                      $this->password=$new;
                      return true;
                  }else
                      return false;
              }

              public function login($password) {
                  return $this->password==$password;
              }

              public static function createuser($username,$password) {
                  $user=new authuser($username,$password);
                  return $user;
              }

          }
          $user=authuser::createuser("admin","123");

          echo $user->getusername();
          if($user->changepassword('abc', 'new'))
              echo 'changepassword success';
          else
              echo 'change password fail';
          $user->changepassword("123", "321");
          if($user->login("321"))
              echo "login";
          else
              echo "login fail";
          ?>

    上面是一个虽然没有什么用但是语法结构上较为完整的类。首先使用class关键字定义类的名字,内部可以定义字段和方法。字段和方法的修饰词可以是private,protected,public 和 final(仅方法有)。其含义和其它语言一致。不再赘述。不同的地方在于,php不支持函数的重载。另外,php5的构造函数的定义是__construct,注意前缀是两个下划线。php4的构造函数的定义和其它语言一致,是和类名一样的函数,php5也兼容这种写法。php5还支持析构函数,名字是__destruct。在函数内部,可以使用$this变量来获得当前对象的引用。 php也支持静态函数,同样是使用static关键字修饰。示例中最后一个函数就静态函数。静态函数不能通过类的实例引用。

     

    类的定义下面是使用类的代码示例,php也是通过new关键字来实例化一个类。通过->运算符来引用对象的方法。注意其静态类的引用方法是::,这是和c 一致的。

    下面再简单介绍下类的继承。php中使用extends关键字来实现类的继承,这是和java一致的:

    <?php
            class baseclass {
                function __construct() {
                    print "in baseclass constructorn";
                }
            }
            class subclass extends baseclass {
                function __construct() {
                    parent::__construct();
                    print "in subclass constructorn";
                }
            }
         
            $obj = new baseclass();
            $obj = new subclass();
    ?>

    输出的结果是: in baseclass constructor in baseclass constructor in subclass constructor

    要注意,php的子类的构造函数不会自动调用父类的构造函数,必须在程序中显式地调用。使用parent关键字可以得到父类的引用。另外,由于php本身是弱类型的,所以“多态“的概念也不存在了,实际上,它永远都是多态的。
    接口
    接口定义了一组方法,但不实现他们。其语法为:

    interface  iinterfacename
    {
       //常量、函数定义
    }类利用implements关键字来表面实现某个接口,这和java是一致的。


    <?php
       interface iaddable{
          function add($something);
       }

       class addclass implements iaddable
       {
           private $data;
           function addclass($num){
               $data=$num;
           }
           public function add($something)
           {
               $data =$something;
               return $data;
           }
       }

       $a=new addclass (5);
       echo $a instanceof iaddable;
       echo $a->add(10);
    ?>

    本文由88bifa必发唯一官网发布于八八必发娱乐,转载请注明出处:用array()来创建数组会尤其有益于一点

    关键词: 八八必发娱乐

上一篇:没辙删除文件

下一篇:没有了