php从入门到放弃系列-03.php函数和面向对象

一、函数

  php真正的威力源自它的函数,内置了1000个函数,可以参考PHP 参考手册

  自定义函数:

 function functionName()
{
要执行的代码;
}

  函数命名的准则:

  • 函数的名称应该提示出它的功能
  • 函数名称以字母或下划线开头(不能以数字开头)

二、面向对象

  1、类基础语法:

 <?php
class Site {
/* 成员变量 */
var $url;
var $title; /* 成员函数 */
function setUrl($par){
$this->url = $par;
} function getUrl(){
echo $this->url . PHP_EOL;
} function setTitle($par){
$this->title = $par;
} function getTitle(){
echo $this->title . PHP_EOL;
}
}
?>

解析如下:

  • 类使用 class 关键字后加上类名定义。

  • 类名后的一对大括号({})内可以定义变量和方法。

  • 类的变量使用 var 来声明, 变量也可以初始化值。

  • 函数定义类似 PHP 函数的定义,但函数只能通过该类及其实例化的对象访问。

  • $this 代表自身的对象,访问对象成员使用->访问,不再是.
  • PHP_EOL 为换行符

  2、创建使用对象

  类创建后,我们可以使用 new 运算符来实例化该类的对象,访问对象成员使用->访问,不再是.,使用new Site调用无参构造函数,可以不带括号:

 $runoob = new Site;
$taobao = new Site;
$google = new Site;
 $runoob->setTitle( "菜鸟教程" );

  3、构造函数

  使用_construct命名构造函数

 function __construct( $par1, $par2 ) {
$this->url = $par1;
$this->title = $par2;
}

  4、析构函数

  与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数

 <?php
class MyDestructableClass {
function __construct() {
print "构造函数\n";
$this->name = "MyDestructableClass";
} function __destruct() {
print "销毁 " . $this->name . "\n";
}
} $obj = new MyDestructableClass();
?>

  执行结果为:

构造函数
销毁 MyDestructableClass

  5、继承

  单根继承,继承使用关键字extends,实现接口使用implements

三、结束语

  ok,php函数和对象已经学习完毕。注意,本教程属于快速学习教程,只关注一些语法重点和特殊、不同点。

php从入门到放弃系列-03.php函数和面向对象的更多相关文章

  1. php从入门到放弃系列-01.php环境的搭建

    php从入门到放弃系列-01.php环境的搭建 一.为什么要学习php 1.php语言适用于中小型网站的快速开发: 2.并且有非常成熟的开源框架,例如yii,thinkphp等: 3.几乎全部的CMS ...

  2. [大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world

    [大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world 原文链接:http://www.cnblogs.com/blog5277/ ...

  3. [大数据从入门到放弃系列教程]第一个spark分析程序

    [大数据从入门到放弃系列教程]第一个spark分析程序 原文链接:http://www.cnblogs.com/blog5277/p/8580007.html 原文作者:博客园--曲高终和寡 **** ...

  4. php从入门到放弃系列-04.php页面间值传递和保持

    php从入门到放弃系列-04.php页面间值传递和保持 一.目录结构 二.两次页面间传递值 在两次页面之间传递少量数据,可以使用get提交,也可以使用post提交,二者的区别恕不赘述. 1.get提交 ...

  5. php从入门到放弃系列-02.php基础语法

    php从入门到放弃系列-02.php基础语法 一.学习语法,从hello world开始 PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器&qu ...

  6. K8S从入门到放弃系列-(16)Kubernetes集群Prometheus-operator监控部署

    Prometheus Operator不同于Prometheus,Prometheus Operator是 CoreOS 开源的一套用于管理在 Kubernetes 集群上的 Prometheus 控 ...

  7. K8S 从入门到放弃系列文章目录(Kubernetes 1.14)

    1)软件环境 软件 版本 系统 Centos7.5 Kubernetes 1.14.1 Docker 18.09 Calico 3.6 Etcd 3.3.12 2)部署过程简单概要 三台master节 ...

  8. 爬虫入门到放弃系列07:js混淆、eval加密、字体加密三大反爬技术

    前言 如果再说IP请求次数检测.验证码这种最常见的反爬虫技术,可能大家听得耳朵都出茧子了.当然,也有的同学写了了几天的爬虫,觉得爬虫太简单.没有啥挑战性.所以特地找了三个有一定难度的网站,希望可以有兴 ...

  9. WPF从入门到放弃系列第二章 XAML

    本文是作者学习WPF从入门到放弃过程中的一些总结,主要内容都是对学习过程中拜读的文章的整理归纳. 参考资料 XAML 概述 (WPF):https://msdn.microsoft.com/zh-cn ...

随机推荐

  1. shell基础--变量的数值计算

    变量的数值计算 1.$((表达式)) (1).实验1 [root@~_~ day4]# cat test.sh #!/bin/bash a=6 b=2 echo "a-b=$(($a-$b) ...

  2. YII缓存整理

    缓存 缓存是用于提升网站性能的一种即简单又有效的途径.通过存储相对静态的数据至缓存以备所需,我们可以省去生成这些数据的时间.在 Yii 中使用缓存主要包括配置和访问缓存组件 . 如下的应用配置指定了一 ...

  3. [luogu3942] 将军令

    题面 ​ 题目的意思大概是给你一棵n个点的树, 求最少需要多少个多少个点, 整棵树都被覆盖(覆盖的意思是所有离被选中的点距离不大于k的点都视作已覆盖). ​ 考虑贪心(其实我考试的时候以为是道树形dp ...

  4. ethers.js-2-wallets and signers

    Application Programming Interface (API) Wallets and Signers A Wallet manages a private/public key pa ...

  5. ios开发UI篇--UIButton

    概述 UIButton 是执行自定义代码以响应用户交互的控件. UIButton 其实包含 UIImageView 和 UILabel 两个控件,UIButton 继承于 UIControl,所以有  ...

  6. java面向对象之个人总结

    面向对象有三大特性:继承,封装,多态 1.继承: (1)继承的特点:A,java支持单根继承,不支持多根继承 B,java支持多层继承(继承体系) (2)细节注意:A.子类只能继承父类的非私有成员(成 ...

  7. #leetcode刷题之路33-搜索旋转排序数组

    假设按照升序排序的数组在预先未知的某个点上进行了旋转.( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ).搜索一个给定的目标值,如果数组中存在这个目标值,则返 ...

  8. python执行时遇到 KeyError: b'somevar' 时需要想到的

    虽然这个问题很小,但我觉得很有必要单独拿出来强调一下. 这样在遇到类似错误的时候可以很快反应过来,进而节约了时间. 这里我拿 shelve 模块举例(shelve的作用大致就是把python变量存放到 ...

  9. React-Native StyleSheet属性支持

    /** * Copyright (c) 2015-present, Facebook, Inc. * All rights reserved. * * This source code is lice ...

  10. C#框架学习资料集锦

    1.AllEmpty 的[从零开始编写自己的C#框架]系列 从零开始编写自己的C#框架(1)——前言从零开始编写自己的C#框架(2)——开发前的准备工作从零开始编写自己的C#框架(3)——开发规范从零 ...