百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

「基础编程学习」 「PHP7数组详解」:第1章 (8)数组和对象

qiyuwang 2024-11-06 20:16 13 浏览 0 评论

# 1.14 数组

讲了7节了,终于说到重头戏了。

数组,将关联的数据,放在内存中。

举一个例子,比如说一个班级,有一个班级号,班级名,描述,房间号,教导员,班级人数。可以存到一个数组内,这样写:

$class_array[0] = "CS122";
// class number
$class_array[1] ="Programming Concepts 1";
// class name
$class_array[2] ="Basic concepts of the PHP language.";
// description
$class_array[3] = "B123"; // room
$class_array[4] = "Dr. Abraham Excell";
// instructor
$class_array[5] = 50;
// number of students

上面这个数组,是随用随建的。用的时候赋值,一般呢,我们明确知道的,用下面的方式书写:


$class_array = array(
    'CS122',
    'Programming Concepts 1',
    'Basic concepts of the PHP language.',
    'B123', 
    'Dr. Abraham Excell', 
    50
);

一目了然。大家看到,这个数组内存储的有整型,有字符串,类型不一样,都可以放在一起。这与我们在强类型语言内看到的,声明数组之前,必须指定数组的长度,数组元素的数据类型,不一样,不一样,不一样!

要不说PHP没有真正的数组呢。PHP的数组,说白了,就是键值映射数据对。

把上面额数组,使用var_dump打印出来,看一下数组的结构。我们发现,数组是默认从0开始,使用正整数作为键,存储数据的。

PHP的数组也的确是这样的机制,它还支持明确指定数组的键,也就是键值对存储。看下面的额数据:

$class_array["class number"] = "CS122";
$class_array["class name"] = "Programming Concepts 1";
$class_array["description"] = "Basic concepts of the PHP language.";
$class_array["room"] = "B123";
$class_array["instructor"] = "Dr. Abraham Excell";
$class_array["number of students"] = 50;

这次,我们使用的键是字符串型。

我们同样使用var_dump打印其内部结构。

键由字符串组成的。

上面的是一维数组,简单数组。当然,数组也支持元素为数组,比如下边这样。

$class_array = array(
    array(
        'CS122', 'Programming Concepts 1',
        'Basic concepts of the PHP language.',
        'B123', 'Dr. Abraham Excell', 50
    ),
    array(
        'CS123', 'Programming Concepts 2',
        'Advanced concepts of the PHP language.',
        'B124', 'Dr. Abraham Excell', 50
    )
);

这个是二维数组。后面章节再详细说。

# 1.15 对象,属性,和方法

PHP是一门面向对象的语言。类由属性和方法组成。对象是类的实例。

自 PHP 5 起完全重写了对象模型以得到更佳性能和更多特性。这是自 PHP 4 以来的最大变化。PHP 5 具有完整的对象模型。

类的访问控制

对属性,或者方法的访问,通过再其前面添加关键字来实现。

一共有三种控制级别,public,private,protected。

public定义共有类成员,可以在任何地方被访问;

private定义私有类成员,只能在定义的类内使用和访问,不能继承,不能外部访问。

protected定义受保护的类成员,可以被自身,子类,和父类访问。

默认,是公有,属性和方法。

说概念不直观,来看例子。

先声明一个类,然后用new关键字实例化出来一个对象。然后这个对象就继承了类的所有属性和方法。

因为有访问控制,所以只有公有的方法和属性,才能访问。private,protected的属性和方法,是没有权限访问到的。

上面是项目中的一个完整的类。使用var声明的属性,默认是public公有属性。

特别i地,__construct()方法,是在该类实例化的时候,会执行其中的代码。该方法接收一个$path参数,在实例化的时候,会进行传入

其他方法,因为没有特别说明为public/private/protected,因此默认public。可外部访问。

下面看一下业务逻辑中,有都是如何使用这个类的。

$smarty = new template(ROOT_PATH . 'upgrade/templates/');

直接用new关键字,实例化。传入一个字符串参数,在实例化的时候,会执行__construct()方法。接着$smarty就可以自由访问template类的所有公有属性和方法了。

$smarty->assign('page_title',       $position['title']);    // 页面标题
$smarty->assign('ur_here',          $position['ur_here']);  // 当前位置
$smarty->display('activity.dwt');

大家可以看到,遵循规则定义,使用类和对象,程序封装的更为简洁了。

相关推荐

基于Docker方式安装与部署Camunda流程引擎

1Camunda简介官网:https://docs.camunda.org/manual/7.19/installation/docker/Camunda是一个轻量级、开源且高度灵活的工作流和决策自...

宝塔Linux面板如何部署Java项目?(宝塔面板 linux)

通过宝塔面板部署Java还是很方便的,至少不需要自己输入tomcat之类的安装命令了。在部署java项目前,我还是先说下目前的系统环境,如果和我的系统环境不一样,导致部署不成功,那你可能需要去找其他资...

浪潮服务器如何用IPMI安装Linux系统

【注意事项】此处以浪潮服务器为例进行演示所需使用的软件:Chrome浏览器个人PC中需要预先安装java,推荐使用jdk-8u181-windows-x64.exe【操作步骤】1、在服务器的BIOS中...

Centos7环境Hadoop3集群搭建(hadoop集群环境搭建实验报告)

由于项目需要存储历史业务数据,经过评估数据量会达到100亿以上,在原有mongodb集群和ES集群基础上,需要搭建Hbase集群进行调研,所以首先总结一下Hadoop集群的搭建过程。一、三个节点的集群...

Hadoop高可用集群搭建及API调用(hadoop高可用原理)

NameNodeHA背景在Hadoop1中NameNode存在一个单点故障问题,如果NameNode所在的机器发生故障,整个集群就将不可用(Hadoop1中虽然有个SecorndaryNameNo...

使用Wordpress搭建一个属于自己的网站

现在开源的博客很多,但是考虑到wordpress对网站的seo做的很好,插件也多。并且全世界流量排名前1000万的网站有33.4%是用Wordpress搭建的!所以尝试用Wordpress搭建一个网站...

Centos 安装 Jenkins(centos 安装ssh)

1、Java安装查看系统是否已安装Javayumlistinstalled|grepjava...

Java教程:gitlab-使用入门(java中的git)

1导读本教程主要讲解了GitLab在项目的环境搭建和基本的使用,可以帮助大家在企业中能够自主搭建GitLab服务,并且可以GitLab中的组、权限、项目自主操作...

Dockerfile部署Java项目(docker部署java应用)

1、概述本文主要会简单介绍什么是Docker,什么是Dockerfile,如何安装Docker,Dockerfile如何编写,如何通过Dockerfile安装jar包并外置yaml文件以及如何通过do...

如何在Eclipse中搭建Zabbix源码的调试和开发环境

Zabbix是一款非常优秀的企业级软件,被设计用于对数万台服务器、虚拟机和网络设备的数百万个监控项进行实时监控。Zabbix是开放源码和免费的,这就意味着当出现bug时,我们可以很方便地通过调试源码来...

Java路径-02-Java环境配置(java环境搭建及配置教程)

1Window环境配置1.1下载...

35.Centos中安装python和web.py框架

文章目录前言1.Centos7python:2.Centos8python:3.进行下载web.py框架然后应用:4.安装好之后进行验证:5.总结:前言...

《我的世界》服务器搭建(我的世界服务器如何搭建)

1.CentOS7环境1.1更改YUM源#下载YUM源文件curl-o/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com...

CentOS 7 升级 GCC 版本(centos7.4升级7.5)

1.GCC工具介绍GCC编译器:...

Linux安装Nginx详细教程(linux安装配置nginx)

环境准备1.因为Nginx依赖于gcc的编译环境,所以,需要安装编译环境来使Nginx能够编译起来。命令:yuminstallgcc-c++显示完毕,表示安装完成:2.Nginx的http模块需要...

取消回复欢迎 发表评论: