zoukankan      html  css  js  c++  java
  • 新手指引,php什么是常量、变量、数组、类和对象及方法?

    众所周知,常量、变量、数组、类和对象及方法共同构成了PHP的基石。那么什么是常量?什么是变量?什么是数组?什么是类和对象及方法?我在此谈谈个人浅见,新手指引,高手勿喷。

    PHP 常量

    定义:常量是单个值的标识符(名称),有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号),在脚本中无法改变该值,常量贯穿整个脚本,且作用域自动全局

    简单来说,日常生活中固定不变的事物皆可为常量,例如1公斤=1000克,1分钟=60秒;例如说,我们在php脚本编写一分钟倒计时功能时,需要用到常量60秒,我们即可定义一个常量:define("min","60");;这个常量min值为60,拥有全局作用域,且无法被改变。

    php中创建常量使用define() 函数,它包括三个参数:1.参数名,2.参数值,3.是否对大小写敏感(此参数可以不设置,默认为false,不敏感)。形如define(name,value),例如上文中定义常量的代码为:define("min","60");

    PHP 变量

    我对变量的理解:在日常生活中,有某些事物的值是不断变化的,例如说体重、年龄、日照时长等等等等,为了描述这些事物,显然单纯使用常量是无法实现的,因此变量应运而生。

    定义:变量是一个可变化值的标识符(名称),其值不断改变,可以是数字、字符串、数组、对象等,实质上变量就是一个存储信息的容器。变量又分为全局变量与局部变量,局部变量在定义此变量的函数方法外,无法被调用。

    简单来说,日常生活中不断变化值的事物即为变量,例如体重,100个人可能有100个体重值,因此在php中涉及到人的属性时,体重weight必须定义为变量。举例而言,我们用php编写加法功能:$c=$a+$b;,显而易见,两个加数及结果的值都是变化的,则这两个加数及结果都要被定义为变量。

    php与js或是c不同,在PHP中没有创建变量的命令,变量会在首次为其赋值时被创建,即不需定义,可直接使用。定义方法形如:$name=value;例如上文中的加法功能中,三个变量的定义:$a=1;$b=2;$c=$a+$b;

    变量命名规则:

      1.变量以 $ 符号开头,其后是变量的名称

      2.变量名称必须以字母或下划线开头

      3.变量名称不能以数字开头

      4.变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)

      5.变量名称对大小写敏感($y 与 $Y 是两个不同的变量),这一点至关重要。

    PHP 数组

    我对数组的理解:上文提到,人的体重必须定义为变量,但是若在php脚本中涉及到多个人,那为了描述多个人的体重,就需要定义多个体重变量。若脚本涉及到许多个甚至是无数个人,那显然单纯的定义变量是无法实现的,为了解决这类问题,php定义了数组。

    定义:可以同时保存多个值的变量即为数组,数组是一种特殊的变量。理论上而言,数组可以储存一串毫无关联的变量的值,但实际上,我们在php中使用数组,储存的一般都是一串具有相同属性变量的值,例如描述人体重的数组、描述人年龄的数组等等。

    简单而言,为了描述生活中具有相同属性的事物,就需要用到数组。譬如说人的体重,学生的成绩,汽车的品牌等等。举例而言,使用php编写教学系统,涉及到某门功课学生成绩,则需要定义数组:$result=array("95","96","85");这个数组拥有三个值,95,96,85,表示三个学生在某一门课的成绩。

    php中创建数组需要使用 array() 方法,形如$arrayName = array(value1,value2,value3...);,举例来说:$result=array("95","96","85");,这就是数组的创建。

    数组通过下标进行访问,如对上文中的数组$result进行访问,$result[0]代表第一个值95,$result[1]代表第二个值96...

    数组又细分为三种类型:

      1.索引数组 - 带有数字索引的数组

      2.关联数组 - 带有指定键的数组

      3.多维数组 - 包含一个或多个数组的数组

    索引数组即常见以数字下标进行访问的数组,譬如上文的$result就是一个索引数组,索引数组的输出一般通过for循环。

    关联数组即给数组值进行命名的数组,形如$arrayName = array(name1 => value1,name2 => value2,name3 => value3...)。实例:$weight = array('Bob' => '62','Davi' => '59','Susan' => '48');,关联数组的访问通过数组值的名来进行访问,例如$weight[Bob]代表第一个值62.。关联数组的输出通过foreach as来进行输出。

    多位数组即数组值依旧为数组的数组,形如$arrayName = array(array(value1,value2,value3...),array(value1,value2,value3...),array(value1,value2,value3...)...);,多为数组的访问也是通过下标进行访问的。

    PHP 类、对象及方法

    我对对象及类的理解:现实生活中的一切事物皆为对象。上文提到,为了描述多个人的多个属性,需要用到数组。然而实际上,人不只拥有属性,人还拥有行为,譬如吃饭、睡觉、打豆豆...,那我们要如何描述人的行为?因此php定义了类和对象。

    在我的理解中,php是一个世界,在这个世界中,常量是点,变量是线,数组是面,类和对象则是立体。

    定义:

      对象:对象是人们要进行研究的任何事物,它不仅能表示具体的事物,还能表示抽象的规则、行为、计划或事件。对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。

      类:具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。简而言之,对象的抽象是类,类的实例化就是对象,类实际上就是一种数据类型。类具有属性,它是对象状态的抽象,用数据结构来描述类的属性。类具有方法操作,它是对象行为的抽象,用操作名和实现该操作的方法来描述。

    对象和类的关系:类与对象的关系就如模具和铸件的关系,类实例化的结果就是对象,而对象的抽象就是类,类描述了一组具有相同特性(属性)和相同行为的对象。

    实例化对象需要先有类,然后才能实例化,

    类的声明方式形如:
    class ClassName{}

    类中声明变量的方式形如:
    public $name1;//声明公有变量
    private $name2;//声明私有变量
    在类中,公有变量可以在实例化对象中赋值与访问,而私有变量无法在实例化对象中赋值与访问,只能在类内部访问

    类中声明方法的方式形如:
    public function functionName1(){}//声明公有方法
    private function functionName2(){}//声明私有方法
    在类中,公有方法可以在实例化对象中执行,而私有方法无法在实例化对象中执行,只能在类内部执行

    类方法中访问类变量的方式形如:
    $this->name

    对象和类代码实例:

    <?php
    //头部声明显示方式为text/html,编码格式为utf-8,避免出现中文乱码
    header('Content-Type:text/html;charset=utf-8');
    class person{
    //类中变量的定义
    public $name;//定义公有变量
    public $age;
    public $weight;
    public function eat(){
    echo $this->name.'正在吃饭!<br>';
    }
    public function sleep(){
    echo $this->name.'正在睡觉!<br>';
    }
    public function play(){
    echo $this->name.'正在打豆豆!<br>';
    }
    public function personInfo(){
    echo '个人信息:<br>姓名:'.$this->name.'<br>年龄:'.$this->age.'<br>体重:'.$this->weight;
    }
    }
    
    //类的实例化就是对象,$obj是一个对象
    $obj = new person;
    $obj->name='meizi';//给对象的属性赋值
    $obj->age='22';
    $obj->weight='58';
    $obj->eat();//调用对象的方法
    $obj->sleep();
    $obj->play();
    $obj->personInfo();
    ?>

    效果如图所示:

  • 相关阅读:
    (文章转载)GetTextMetrics与GetTextExtent的区别
    (文章转载)
    (文章转载)在刷新窗口时经常要调用重绘函数
    (文章转载)MCI编程
    Visual C#的Excel编程
    EXCEL中合并单元格
    Excel、Exchange 和 C# (摘要)
    C# 查询一个值方法ExecuteScalar()
    如何用C#在Excel中生成图表?
    javascript 常用方法
  • 原文地址:https://www.cnblogs.com/chenyoumei/p/8064654.html
Copyright © 2011-2022 走看看