PHP入门教程之面向对象基本概念实例分析

本文实例讲述了PHP面向对象基本概念。分享给大家供大家参考,具体如下:

Demo1.php

<?php
  //怎样去创建一个类 格式:修饰符 class 类名{}
  //我们去创建一个电脑的类,这类可以创建出对象(生产出电脑)
  class Computer { //类名第一个字母大写
  }
  //创建一台电脑出来,也就是对象的声明
  //格式:变量 = new 类名();
  //new Compuer() 表示实例化的过程(意思是创建一个对象)
  //$compuer1 = new Compuer() 这个过程就是把实例化对象的地址给 $compuer1
  //$compuer1 我们就可以称作为对象的应用
  $computer1 = new Computer();  //这是我们创建的第一台电脑
  $computer2 = $computer1;  //这是我们创建的第二台电脑
  var_dump($computer1);
  echo '<br/>';
  var_dump($computer1);
?>

Demo2.php

<?php
  header('Content-Type:text/html; charset=utf-8;');
// class Computer {
//   //字段成员的声明格式:修饰符 变量名 [=xxx];
//   public $_name = '联想';  //public 表示共有,类外可以访问
//   public $_model = 'i7';
// }
// //创建一个对象,生产出一台电脑 -> 表示指向
// $computer1 = new Computer();
// echo $computer1 -> _name;
// $computer1 -> _name = 'dell';
// echo $computer1 -> _name;
  class Computer {
    //字段成员的声明格式:修饰符 变量名 [=xxx];
    public $_name; //public 表示共有,类外可以访问
    public $_model;
  }
  //创建一个对象,生产出一台电脑 -> 表示指向
  $computer1 = new Computer();
  //给成员字段赋值
  $computer1 -> _name = '联想';
  //取值
  echo $computer1 -> _name;
?>

Demo3.php

<?php
  header('Content-Type:text/html; charset=utf-8;');
  class Computer {
    public $_name; //public 表示共有,类外可以访问
    public $_model;
    //创建方法的格式:修饰符 function 方法名(){}
    //如果不加修饰符,默认就是public
    function _run(){
      echo '我是运行的方法';
    }
  }
  //创建一个对象,生产出一台电脑 -> 表示指向
  $computer1 = new Computer();
  $computer1 -> _run();
?>

Demo4.php

<?php
  header('Content-Type:text/html; charset=utf-8;');
// class Computer {
//   //字段成员的声明格式:修饰符 变量名 [=xxx];
//   public $_name = '联想';  //public 表示共有,类外可以访问
//   public $_model = 'i7';
// }
// //创建一个对象,生产出一台电脑 -> 表示指向
// $computer1 = new Computer();
// echo $computer1 -> _name;
// $computer1 -> _name = 'dell';
// echo $computer1 -> _name;
  class Computer {
    //字段成员的声明格式:修饰符 变量名 [=xxx];
    public $_name; //public 表示共有,类外可以访问
    public $_model;
  }
  //创建一个对象,生产出一台电脑 -> 表示指向
  $computer1 = new Computer();
  //给成员字段赋值
  $computer1 -> _name = '联想';
  //取值
  //echo $computer1 -> _name;
  $computer2 = $computer1;
  echo $computer2 -> _name;
?>

Demo5.php

<?php
  header('Content-Type:text/html; charset=utf-8;');
  class Computer {
    public $_name; //public 表示共有,类外可以访问
    public $_model;
    //创建方法的格式:修饰符 function 方法名(){}
    //如果不加修饰符,默认就是public
    function _run($_who){
      echo $_who.'是运行的方法';
    }
  }
  //创建一个对象,生产出一台电脑 -> 表示指向
  $computer1 = new Computer();
  $computer1 -> _run('一站式建网站');
?>

Demo6.php

<?php
  header('Content-Type:text/html; charset=utf-8;');
  class Computer {
    //创建一个构造方法
    public function Computer(){
      echo '我是构造方法';
    }
  }
  //只要实例化,就可以运行构造方法
  //$computer = new Computer();
  new Computer();
?>

Demo7.php

<?php
  header('Content-Type:text/html; charset=utf-8;');
  class Computer {
    //创建一个构造方法
    public function __construct(){
      echo '我是比较先进的构造方法';
    }
  }
  //只要实例化,就可以运行构造方法
  //$computer = new Computer();
  new Computer();
?>

Demo8.php

<?php
  header('Content-Type:text/html; charset=utf-8;');
  class Computer {
    //创建一个构造方法
    public function __construct(){
      echo '我是比较先进的构造方法';
    }
    //析构方法
    public function __destruct(){
      echo '我是析构方法';
    }
    //普通方法
    public function _run(){
      echo '我是普通方法';
    }
  }
  //只要实例化,就可以运行构造方法
  $computer = new Computer();
  $computer -> _run();
?>

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

时间: 2016-09-09

PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)

本文实例讲述了PHP面向对象的特性.分享给大家供大家参考,具体如下: Demo1.php <?php header('Content-Type:text/html; charset=utf-8;'); //创建一个电脑类 class Computer { //什么叫做类内,就是创建类的花括号内的范围叫做类内,其他地方则类外. //public 是对字段的公有化,这个字段类外即可访问,赋值和取值 public $_name = '联想'; } $computer = new Computer();

PHP面向对象程序设计之类与反射API详解

本文实例讲述了PHP面向对象程序设计之类与反射API.分享给大家供大家参考,具体如下: 了解类 class_exists验证类是否存在 <?php // TaskRunner.php $classname = "Task"; $path = "tasks/{$classname}.php"; if ( ! file_exists( $path ) ) { throw new Exception( "No such file as {$path}&qu

PHP面向对象自动加载机制原理与用法分析

本文实例讲述了PHP面向对象自动加载机制原理与用法.分享给大家供大家参考,具体如下: 在学习PHP的面向对象的时候,会知道很多"语法糖",也就是魔术方法.有一个加自动加载的魔术方法,叫:__autoload(); 先看一段代码 <?php function __autoload($classname) { $filename = "./". $classname .".php"; include_once($filename); } new

PHP面向对象程序设计类的定义与用法简单示例

本文实例讲述了PHP面向对象程序设计类的定义与用法.分享给大家供大家参考,具体如下: <?php class Person { private $name; private $sex; private $age; function __construct($name = "", $sex = "男", $age = 22) { $this->name = $name; $this->sex = $sex; $this->age = $age;

PHP面向对象程序设计之命名空间与自动加载类详解

本文实例讲述了PHP面向对象程序设计之命名空间与自动加载类.分享给大家供大家参考,具体如下: 命名空间 避免类名重复,而产生错误. <?php require_once "useful/Outputter.php"; class Outputter { // output data private $name; public function setName($name) { $this->name = $name; } public function getName()

PHP面向对象之旅:深入理解static变量与方法

static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为"类属性"或"类方法". 如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号"::"调用. static关键字可以用来修饰变量.方法. 不经过实例化,就可以直接访问类中static的属性和static的方法. static 的属性和方法,只能访问static的属性和方法,不能类访问非静态的属性和方法.因为静态属性和方法被创建时

PHP 面向对象 final类与final方法

final---用于类.方法前. final类---不可被继承. final方法---不可被覆盖. final类不能被继承. 如果我们不希望一个类被继承,我们使用final来修饰这个类.这个类将无法被继承.比如我们设定的Math类,涉及了我们要做的数学计算方法,这些算法也没有必要修改,也没有必要被继承,我们把它设置成final类型. 复制代码 代码如下: <? //声明一个final类Math final class Math{ public static $pi = 3.14; public

PHP面向对象程序设计方法实例详解

本文实例分析了PHP面向对象程序设计方法.分享给大家供大家参考,具体如下: PHP5开始支持面向对象,示例如下: <?php class classname{ var $attr1; var $attr2; public $attribute; const PI = 3.14; // 构造函数 function __construct($param = 'default'){ echo "Constructor called with parameter $param<br /&g

PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)

本文实例讲述了PHP面向对象程序设计高级特性.分享给大家供大家参考,具体如下: 静态属性 <?php class StaticExample { static public $aNum = 0; // 静态共有属性 static public function sayHello() { // 静态共有方法 print "hello"; } } print StaticExample::$aNum; StaticExample::sayHello(); ?> 输出:0   

PHP面向对象程序设计OOP继承用法入门示例

本文实例讲述了PHP面向对象程序设计OOP继承用法.分享给大家供大家参考,具体如下: <?php class Person { var $name;//protected var $sex; var $age; function __construct($name = "", $sex = "男", $age = 22) { $this->name = $name; $this->sex = $sex; $this->age = $age;

php类的定义与继承用法实例

本文实例讲述了php类的定义与继承用法.分享给大家供大家参考.具体如下: <?php /* * class */ class people { public $name; public $age; function __construct($namec,$agec) { $this->name = $namec; $this->age = $agec; } protected function getmessage() { return "姓名:".$this->

php面向对象中static静态属性和静态方法的调用

本文实例讲述了php中static静态属性和静态方法的调用.分享给大家供大家参考.具体如下: 这里分析了php面向对象中static静态属性和静态方法的调用.关于它们的调用(能不能调用,怎么样调用),需要弄明白了他们在内存中存放位置,这样就非常容易理解了.静态属性.方法(包括静态与非静态)在内存中,只有一个位置(而非静态属性,有多少实例化对象,就有多少个属性). 实例: <?php header("content-type:text/html;charset=utf-8"); c

php面向对象中static静态属性与方法的内存位置分析

本文实例分析了php面向对象中static静态属性与方法的内存位置.分享给大家供大家参考.具体如下: static静态属性的内存位置-->类,而不是对象.下面做测试来证明一下 <?php header("content-type:text/html;charset=utf-8"); class Human{ static public $name = "小妹"; public $height; public function tell(){ } } ec

php之static静态属性与静态方法实例分析

本文实例讲述了php之static静态属性与静态方法.分享给大家供大家参考.具体如下: <?php /* * static */ /*静态:属于类而不属于单个对象 (全局的,所有对象共享的) *静态属性:类的方法内调用静态属性时,不要使用$this->方式,而要使用self::的方式 *静态方法: *在类没有任何对象的时候也能被调用 *当成普通方法来用也没问题的 *在静态方法中不能调用普通方法 * * */ class xin { static private $name; public fu

php中类和对象:静态属性、静态方法

在PHP中,使用关键字 static 修饰成员属性和成员方法被称为静态属性和静态方法.静态属性和静态方法不需要在类被实例化的情况下可以直接使用. 静态属性 与普通的成员属性不同,静态属性属于类本身而不属于类的任何实例.静态属性可以被看做是存储在类当中的全局变量,可以在任何地方通过类来访问它们. 由于静态属性不受任何具体对象的限制,所以不需要建立类实例,而可以直接引用类中的静态属性,使用语法格式如下: 类名称::$静态属性名称 其中,符号"::"被称作范围解析操作符,它可以用于访问静态成

php 静态属性和静态方法区别详解

静态 public.private.protected 静态属性 在属性或方法前加static关键字,即为静态属性 在实际工作中会有一个类的多个对象,可能会共享一份数据. 解决办法: 1:类常量,不能更改. 示例: 2:有时在共享一份数据后,还要所有的共享此数据的对象还允许更改. 所以就有static 语法: 示例: 提示:静态属性与类常量相似(相同),唯一的区分是类常量不可以更改,静态属性可以更改.访问方法是一样的. ::        只能访问类常量.静态属性.静态方法 静态属性需要加$,常

C#中static静态变量的用法实例

本文实例讲述了C#中static静态变量的用法.分享给大家供大家参考.具体如下: 使用 static 修饰符声明属于类型本身而不是属于特定对象的静态成员static修饰符可用于类.字段.方法.属性.运算符.事件和构造函数,但不能用于索引器.析构函数或类以外的类型   静态全局变量 定义:在全局变量前,加上关键字 static 该变量就被定义成为了一个静态全局变量. 特点: ① .该变量在全局数据区分配内存. ② .初始化:如果不显式初始化,那么将被隐式初始化为0.   静态局部变量 定义:在局部

php中static 静态变量和普通变量的区别

php中static 静态变量和普通变量的区别 在变量的前面加上static 就构成了静态变量(static 变量). static变量和普通变量的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的. 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它.由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误. static变

对Django中static(静态)文件详解以及{% static %}标签的使用方法

在一个网页中,不仅仅只有一个html骨架,还需要css样式文件,js执行文件以及一些图片等.因此在DTL中加载静态文件是一个必须要解决的问题.在DTL中,使用static标签来加载静态文件.要使用static标签,首先需要{% load static %}. 加载静态文件的步骤如下: 首先确保django.contrib.staticfiles已经添加到settings.INSTALLED_APPS中. 确保在settings.py中设置了STATIC_URL. 注意: 上面两条都是在创建Dja

Java中static静态变量的初始化完全解析

静态变量初始化顺序 1.简单规则 首先先看一段最普遍的JAVA代码: public class Test { public static Test1 t = new Test1(); public static int a = 0; public static int b; public static void main(String[] arg) { System.out.println(Test.a); System.out.println(Test.b); } } class Test1

php中static静态变量的使用方法详解

看看下面的实例: 复制代码 代码如下: <?php function Test() { $w3sky = 0; echo $w3sky; $w3sky++; } ?> 本函数每次调用时都会将 $w3sky 的值设为 0 并输出 "0".将变量加一的 $w3sky++ 没有其到效果,因为一旦退出本函数则变量 $w3sky 就不存在了.要写一个不会丢失本次计数值的计数函数,要将变量 $w3sky 定义为静态(static)的: 如下: 复制代码 代码如下: <?php f