php数组{array}使用教程

 更新时间:2016年11月25日 15:15  点击:1378

php数组{array}使用教程

现在,这冗长的设定每个属性使用一套方法-必须有一个更简单的方法。这就是关联数组结合我们构造派上用场。让我们创造我们的用户对象,并给它几个实例时性能

$attribs = array(
  'name'  => 'Kirupa',
  'job'  => 'Engineer',
  'school' => 'MIT',
  'homeTown' => 'Spanish Fort',
  'homeState' => 'Alabama'
  );
$kirupa = new User( $attribs );

echo 'Name: '.$kirupa->getName().'<br />';  // Kirupa
echo 'Job: '.$kirupa->getJob().'<br />';  // Engineer
echo 'School: '.$kirupa->getSchool().'<br />';  // MIT
echo 'Home Town: '.$kirupa->getHomeTown().'<br />'; // Spanish Fort
echo 'Home State: '.$kirupa->getHomeState().'<br />'; // Alabama

class User {
 private $name;
 private $job;
 private $school;
 private $homeTown;
 private $homeState;
 
 function __construct( $attribs ) {
  $this->name  = $attribs['name'];
  $this->job  = $attribs['job'];
  $this->school  = $attribs['school'];
  $this->homeTown  = $attribs['homeTown'];
  $this->homeState = $attribs['homeState'];
 }
 
 /* name methods */
 function setName( $val ) {
  $this->name = $val;
  return;
 }
 
 function getName() {
  return $this->name;
 }
 
 /* job methods */
 function setJob( $val ) {
  $this->job = $val;
  return;
 }
 
 function getJob() {
  return $this->job;
 }
 
 /* school methods */
 function setSchool( $val ) {
  $this->school = $val;
  return;
 }
 
 function getSchool() {
  return $this->school;
 }
 
 /* home town methods */
 function setHomeTown( $val ) {
  $this->homeTown = $val;
 }
 
 function getHomeTown() {
  return $this->homeTown;
 }
 
 /* home state methods */
 function setHomeState( $val ) {
  $this->homeState = $val;
 }
 
 function getHomeState() {
  return $this->homeState;
 }
}

我一直的一套方法,如果我们想要改变的属性,但现在的性能,建立了经由__construct前面。这就是说,我们通过我们的$ attribs数组对象的实例,这反过来又通过$ attribs的自动构造。优势利用关联数组为此目的,我们并不需要明确地规定所有的变量与方法。这是极其方便的时候将与MySQL PHP的数据,我们将尽快支付。但首先,我们需要学习一点方法的互动和对象分组。

法相互作用
在这一点上,我们的方法不互动。让我们添加一个小功能,例如,我们充分状态转换的名字给适当的缩写。

$attribs = array(
  'name'  => 'Kirupa',
  'homeState' => 'Alabama'
  );
$kirupa = new User( $attribs );

echo 'Name: '.$kirupa->getName().'<br />';   // Kirupa
echo 'Home State: '.$kirupa->getHomeState().'<br />';  // Alabama
echo 'State Abbr.: '.$kirupa->getHomeStateAbbr().'<br />'; // AL

class User {
 private $name;
 private $homeState;
 
 function __construct( $attribs ) {
  $this->name  = $attribs['name'];
  $this->homeState = $attribs['homeState'];
 }
 
 /* name methods */
 function setName( $val ) {
  $this->name = $val;
  return;
 }
 
 function getName() {
  return $this->name;
 }
 
 /* home state methods */
 function setHomeState( $val ) {
  $this->homeState = $val;
 }
 
 function getHomeState() {
  return $this->homeState;
 }
 
 function getHomeStateAbbr() {
  $abbr = States::$ABBRS[$this->getHomeState()];
  if( $abbr ) {
   return $abbr;
  }
  else {
   return 'Unknown';
  }
 }
}

class States {
 /* ideally this would be held in a database */
 static $ABBRS = array (
  'Alabama' => 'AL',
  'Michigan' => 'MI',
  'New York' => 'NY'
  );
}

在这个例子中,我们充分利用国家的名字获得相应的缩写。我们这样做是一类使用同一个静态变量。静态变量一般不会改变,可没有办法。这些变数的行为更多的参考和可用于像你的数据库连接设置和其他网站广泛的变数。静态变量通常是命名与所有大写字母。

为了使这个系统更强大,我们不希望所有用户在我们组具有相同的地位。有些用户需要管理员,其他主持人,和其他普通用户只。我们怎么能考虑到这一点在我们的物体?答案是继承-的能力一类的继承方法和属性从另一个类别。首先,让我们来看看继承代码:

/* Kirupa has admin powers */
$kirupa = new Admin( array( 'name' => 'Kirupa' ) );
echo $kirupa->getName().'<br />'; // Kirupa
echo $kirupa->getAdmin();  // Administrator

/* Regular does not have admin powers */
$regular = new User( array( 'name' => 'Regular' ) );
$regular->getAdmin();   // breaks our code


/* Normal User class */
class User {
 private $name;
 
 function __construct( $attribs ) {
  $this->name = $attribs['name'];
 }
 
 function getName() {
  return $this->name;
 }
}

/* Admin is a User, but with additional functionality */
class Admin extends User {
 function getAdmin() {
  return 'Administrator';
 }
}

正如你可以看到,我们的管理对象继承了功能的用户级使用关键字扩展。最重要的是,我们的管理是提供了一些额外的功能。在这种情况下,我们的用户级被称为超。在PHP中,一类只可继承父之一。还有更多细微的继承,但本教程将只支付基本知识。在一个更现实的情况下,我们将更多的功能代码仅管理员。也许就像:

/* Additional functionality for just Administrators */
class Admin extends User {
 function banUser( $id ) {
  /* code to ban user */
 }
 
 function unbanUser( $id ) {
  /* code to unban or activate user account */
 }
 
 //...
}

为了时间和重点,这些方法并没有真正得到编码。但是,这应该给你一些深入了解如何继承的作品,为什么它可以是有益的。

继续在少数离别的话和方向。

分词
到现在为止,你应该了解对象,如何创建它们,以及如何进入其属性和方法。此教程绝非无所不包。事实上,这仅仅是冰山的一角,目的是这样。为进一步读,我建议PHP5 :对象,模式,与实践的马特Zandstra 。此外,你可以阅读对象提供的文件上php.net 。

正如你开始了解更多的面向对象和你的PHP代码变得更加面向对象,你会发现更多的代码重用,并最终节省时间和能源。预现有的代码资源,如梨和PHPClasses.org将变得越来越有用。

在过去的一页我开始解释了面向对象的重要性和如何创建一个基本对象。在此及以后,我们会敲定许多细节。

类变量和能见度
在班级,我们首先确定我们的变数。在这种情况下,我们的第一个变量是$名称。方便的特点, PHP5 (不PHP4 )是增加能见度的控制。我们$名称变目前的能见度私有化。私人能见度意味着该变量只能可通过内部的方法的类(如setName和getName ) 。如果我们设置变量的可见市民,我们的变量可以访问外部(不包括方法) 。最后的能见度设置一个变量的保护,这意味着变量访问是有限的,家长和继承类,我们将在以后讨论。

在PHP4 ,公众是唯一的选择知名度和公共变量宣布使用无功而不是公众。让我们来看看如何变能见度工程,增加了$位置变量设置为公众能见度:

/* instantiate object */
$kirupa = new User;

/* access private variables via methods, then try without methods */
$kirupa->setName( 'Kirupa' );
echo $kirupa->getName().'<br />'; // Kirupa
echo $kirupa->name.'<br />';  // breaks our code

/* access public variables without methods will work */
$kirupa->location = 'MIT';
echo $kirupa->location.'<br />'; // MIT

class User {
 private $name;  // must be accessed with methods.
    // not available in PHP4
      
 public $location; // can be accessed without methods
    // var $location; in PHP4
 
 function setName( $val ) {
  $this->name = $val;
  return;
 }
 
 function getName() {
  return $this->name;
 }
}

因此,该变量的能见度你应该选择哪一个?答案是,它取决于。一般情况下,您应该利用私人罚款。私营企业是特别有用,因为它支持封装-能够隐藏数据,只有使它可以通过特定接口。在面向对象,一个接口代表的功能给特定的对象。

正如我们设置一个变量的知名度,我们也可以设定知名度的方法。默认情况下,如果我们不成立的知名度我们的方法,他们将被设置为公共。为了时间,我们将不会深入的例子不同的方法知名度。继续了解一个重要和有用的方法,构造。

注意:此为:在方法方面,我们提到级变量和使用其他方法$这一- “ 。这可以看出内setName和getName方法。 $这是一个预设的变量时创建实例,使一个对象引用本身。

请注意有关命名约定:虽然成立[ PropertyName ]和
获得[ PropertyName ]很受欢迎的方法,因为它们的名字很容易理解,他们并不需要。您可以名称这些方法无论你想要的。

构造方法
现在是一个很好的时间来看看构造方法。该构造是一个方法,将自动被运行时对象实例。在PHP5 ,我们的方法称为“魔术方法” (即__construct , __destruct ,和其他一些) ,其中从两个底线。在PHP4 ,构造方法将得到相同的名称的阶级本身。因此,在PHP4 ,如果我们有一类名为用户,我们的构造方法也将被命名用户(不__construct ) 。记住,你不必调用构造方法明确,因为它会自动运行一个实例时,该类别建立。这里有一个构造中的行动:

$kirupa = new User;
echo $kirupa->getJob().'<br />'; // Engineer

class User {
 private $job;
 
 function __construct() { // function User() in PHP4
  $this->job = 'Engineer';
 }
 
 /* job methods */
 function getJob() {
  return $this->job;
 }
}

现在,你可能会开始看到的好处之一对象-许多代码在于背景。我们可以包括文件包含我们的班级隐藏重型代码甚至更多。由于命名约定的类和方法是相当自我解释,我们不会需要不断回顾我们列入档案。继续阅读,了解如何,我们可以用阵列来加快我们的进程。

本教程是介绍了面向对象编程( OOP )用PHP 。经整理本教程,你应该有基本的必要工具,开始航行世界的对象。各地,我们将借鉴的一个例子,而关键术语和细微之用PHP面向对象介绍。此外,一段时间内将用于展示如何把面向对象的PHP与MySQL 。

菜单上有:

创建我们的第一个对象
类变量和能见度
构造方法
使用数组加快编码
法相互作用
面向对象的PHP集成与MySQL
引入继承
分词
现在让我们开始吧!
创建我们的第一个对象
不足为奇的是,面向对象编程是围绕着物体。虽然想法的物体可能是外国给你的编码方面,了解物体的,以及为什么我们使用它们不应采取长。总之,我们的非编程世界是由物体。计算机,鱼,云,人,车都是对象。物体的特性,比如颜色,大小,名称,和速度。对象也可以由其他物体:汽车门;门处理;处理的塑料杠杆;等等。物体到处都是我们身边。出于这个原因,许多程序员找到面向对象编程比较容易理解。

因此,如何物体转化为代码?如果我们建设一个网站的用户,我们将创建一个或多个用户对象。创建对象使用课。课程组相关的变量和函数。变量举行的对象的属性,比如颜色,大小和速度。履行职能的行动一样设置变量值或打开文件。在这个例子中,我们可以创建用户对象与用户类。你可以把用户级为模板的任何用户对象。

创建一个对象是所谓的实例(创建一个实例) 。让我们实例化一个用户对象和代码相应的用户类别:

/* create new object */
$kirupa = new User;

/* class to create objects with */
class User {
}

注:由于本教程的进展,代码将被删除,这样您不要丢失和能专注于手头的任务。随时保持或重新添加代码从以前的例子。

现在,这个用户无法做任何事情,没有任何属性。在班级中,我们使用的方法(又名职能)和变数让我们的物体的功能和性能。让我们重做我们的第一个例子,使我们的用户可以有一个名称:

* create a new object */
$kirupa = new User;

/* call object methods */
$kirupa->setName( 'Kirupa' );
echo $kirupa->getName().'<br />';

class User {
 private $name;
 
 function setName( $val ) {
  $this->name = $val;
  return;
 }
 
 function getName() {
  return $this->name;
 }
}

正如你所看到的,方法是使用功能宣布[ methodName ]格式,这是在PHP的标准。这个简单的例子说明我们如何可以申请名称的对象,然后访问的名称。继续了解我们如何处理变量和方法的课程。
导言
此教程仅仅是一个肮脏的,并解释如何使用包括( )函数,以使你的PHP代码编写的生活变得更轻松。基本上包括( )函数包括档案放在括号内的内论证的主要文件。我用了很多这个当我连接到一个数据库的多个文件。我一直我所有的变数连接在我的包括文件,并要求他们在整个我的主要脚本。一种这样的:

包括档案: include.php
“ ?
/ /这是我的包含文件
$ dbHost = “ localhost ”;
$dbuser = “root” ;
$ dbPass = “ ” ;
$ dbName = “ MyDataBase ” ;
? “

这是该文件,我的名字及其include.php一个,我将放置在我的主要脚本文件。然后,所有您需要做将您的信息,您的档案是一个小的代码行:

主要文件:
“ ? 
include ( “ include.inc ” ) ;
/ /其余的我的代码将在这里...
/ /这里...
/ /这里...
/ /这里...
/ /这里...
? “

现在还有另一种功能与此类似,需要( )之间的唯一区别是,他们需要( )返回一个致命错误,并停止脚本执行。包括: ( )不这样做;脚本继续运行,即使你的文件包含有包括某些类型的错误。我知道这本教程不包括100 %的基地。这只是一个简单的解释。如果您想了解更多的信息,您可以检查出PHP.net或随时要求对论坛在服务器端脚本论坛。
[!--infotagslink--]

相关文章

  • php中eval()函数操作数组的方法

    在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
  • 图解PHP使用Zend Guard 6.0加密方法教程

    有时为了网站安全和版权问题,会对自己写的php源码进行加密,在php加密技术上最常用的是zend公司的zend guard 加密软件,现在我们来图文讲解一下。 下面就简单说说如何...2016-11-25
  • Python 图片转数组,二进制互转操作

    这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • ps怎么使用HSL面板

    ps软件是现在很多人都会使用到的,HSL面板在ps软件中又有着非常独特的作用。这次文章就给大家介绍下ps怎么使用HSL面板,还不知道使用方法的下面一起来看看。 &#8195;...2017-07-06
  • php数组操作 键名比较 差集 交集赋值

    本文章提供在量的数据中级操作实例有如对键名比较计算数组的差集 计算差集 给指定数组中插入一个元素 反转数组 交集赋值新的数组实例。 //定义回调函数 funct...2016-11-25
  • C#二维数组基本用法实例

    这篇文章主要介绍了C#二维数组基本用法,以实例形式分析了C#中二维数组的定义、初始化、遍历及打印等用法,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • php curl模拟post请求和提交多维数组的示例代码

    下面一段代码给大家介绍php curl模拟post请求的示例代码,具体代码如下: <&#63;php$uri = "http://www.cnblogs.com/test.php";//这里换成自己的服务器的地址// 参数数组$data = array ( 'name' => 'tanteng'// 'passwor...2015-11-24
  • C#数组的常用操作方法小结

    Array数组在C#中同样是最基本的数据结构,下面为大家C#数组的常用操作方法小结,皆为细小的代码段,欢迎收看收藏...2020-06-25
  • Plesk控制面板新手使用手册总结

    许多的朋友对于Plesk控制面板应用不是非常的了解特别是英文版的Plesk控制面板,在这里小编整理了一些关于Plesk控制面板常用的使用方案整理,具体如下。 本文基于Linu...2016-10-10
  • 使用insertAfter()方法在现有元素后添加一个新元素

    复制代码 代码如下: //在现有元素后添加一个新元素 function insertAfter(newElement, targetElement){ var parent = targetElement.parentNode; if (parent.lastChild == targetElement){ parent.appendChild(newEl...2014-05-31
  • jQuery 1.9使用$.support替代$.browser的使用方法

    jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support 。 在更新的 2.0 版本中,将不再支持 IE 6/7/8。 以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9。 如果要全面支持 IE,并混合...2014-05-31
  • C#实现字符串转换成字节数组的简单实现方法

    这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
  • 使用percona-toolkit操作MySQL的实用命令小结

    1.pt-archiver 功能介绍: 将mysql数据库中表的记录归档到另外一个表或者文件 用法介绍: pt-archiver [OPTION...] --source DSN --where WHERE 这个工具只是归档旧的数据,不会对线上数据的OLTP查询造成太大影响,你可以将...2015-11-24
  • 使用GruntJS构建Web程序之构建篇

    大概有如下步骤 新建项目Bejs 新建文件package.json 新建文件Gruntfile.js 命令行执行grunt任务 一、新建项目Bejs源码放在src下,该目录有两个js文件,selector.js和ajax.js。编译后代码放在dest,这个grunt会...2014-06-07
  • 如何使用php脚本给html中引用的js和css路径打上版本号

    在搜索引擎中搜索关键字.htaccess 缓存,你可以搜索到很多关于设置网站文件缓存的教程,通过设置可以将css、js等不太经常更新的文件缓存在浏览器端,这样访客每次访问你的网站的时候,浏览器就可以从浏览器的缓存中获取css、...2015-11-24
  • MySQL日志分析软件mysqlsla的安装和使用教程

    一、下载 mysqlsla [root@localhost tmp]# wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz--19:45:45-- http://hackmysql.com/scripts/mysqlsla-2.03.tar.gzResolving hackmysql.com... 64.13.232.157Conn...2015-11-24
  • C#注释的一些使用方法浅谈

    C#注释的一些使用方法浅谈,需要的朋友可以参考一下...2020-06-25
  • C# 拷贝数组的几种方法(总结)

    下面小编就为大家带来一篇C# 拷贝数组的几种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • 安装和使用percona-toolkit来辅助操作MySQL的基本教程

    一、percona-toolkit简介 percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括: 检查master和slave数据的一致性 有效地对记录进行归档 查找重复的索...2015-11-24
  • PHP 二维数组根据某个字段排序的具体实现

    本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求。 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条。 遇到这个...2014-06-07