PHP对象使用介绍

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

本教程是介绍了面向对象编程( 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的标准。这个简单的例子说明我们如何可以申请名称的对象,然后访问的名称。继续了解我们如何处理变量和方法的课程。

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

类变量和能见度
在班级,我们首先确定我们的变数。在这种情况下,我们的第一个变量是$名称。方便的特点, 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;
 }
}

现在,你可能会开始看到的好处之一对象-许多代码在于背景。我们可以包括文件包含我们的班级隐藏重型代码甚至更多。由于命名约定的类和方法是相当自我解释,我们不会需要不断回顾我们列入档案。继续阅读,了解如何,我们可以用阵列来加快我们的进程。
导言
此教程仅仅是一个肮脏的,并解释如何使用包括( )函数,以使你的PHP代码编写的生活变得更轻松。基本上包括( )函数包括档案放在括号内的内论证的主要文件。我用了很多这个当我连接到一个数据库的多个文件。我一直我所有的变数连接在我的包括文件,并要求他们在整个我的主要脚本。一种这样的:

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

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

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

现在还有另一种功能与此类似,需要( )之间的唯一区别是,他们需要( )返回一个致命错误,并停止脚本执行。包括: ( )不这样做;脚本继续运行,即使你的文件包含有包括某些类型的错误。我知道这本教程不包括100 %的基地。这只是一个简单的解释。如果您想了解更多的信息,您可以检查出PHP.net或随时要求对论坛在服务器端脚本论坛。
PHP是不是简单的随机输出价值观和简单的文字。您可以无缝集成PHP和HTML和产出表,格式文本,等等。你大概不知道,有什么大不了呢?该交易的是,您可以控制什么是显示在您的网站通过整合PHP和HTML 。最重要的是, PHP的没有自己的一套格式标记供您学习。您使用HTML 。

所以,让我们开始吧。首先,复制并粘贴下面的代码到一个PHP网页:

<html>
<body>
“ ?的PHP
print( “能否真正掘地鼠队冲入代码PHP的? ” ) ;
? “
“ /体重”
“ /的HTML ”
当您预览网页含有上述内容的代码,您应该会看到文字“能否真正掘地鼠队冲入代码PHP的? ”文本格式不在所有。你会看到显示的文字为默认字体设置为您的浏览器。

您不必通过沉闷遭受,但枯燥的文字。您可以格式-内所有的P HP标签领域。比方说,要大胆的文字。添加标记大胆中, <b>和“ < / b ”标记的文字:

“ ?的PHP
print( “ <b>能否真正掘地鼠队冲入代码PHP的? ” / b “ ” ) ;
? “
当您修改的代码,你的PHP标签与您的粗体标签(见上面的代码)和预览网页在您的浏览器,你会发现,文本现在是粗体。很酷, ehh ?现在,让我们尝试增加一个水平线以下的文字。 HTML标记显示一个横向线是<hr>快来。

让我们补充说,我们的标签编号:

“ ?的PHP
print( “ <b>能否真正掘地鼠队冲入代码PHP的? ” / b “ ” ) ;
print( “ <hr>快来” ) ;
? “
现在,测试此代码。您现在应该可以看到您的文字与水平线显示。只要记住,我们使用的是标准的HTML标记使用的print命令。

输出的数据,涉及报价
虽然所有这一切都非常简单,将情况下,您根本无法进行了一系列的HTML标签内的局限print命令。以下是一个例子

比方说,我们希望我们的文字超连结。在HTML做这种伎俩是:

的<a href="http://www.kirupa.com/">能否真正掘地鼠队冲入代码PHP的? “ / 1 ”

现在,我们不能简单地把上面的HTML内的print命令。其原因是因为害怕引号周围的网址。 PHP的曲解引号是指年底print命令。您可能会结束了一个错误。

该解决方案输出引号,是使用下面的两个字符(引号和背部斜线)的位置上引号: “ 。因此,print命令上述HTML代码变为:

“ ?的PHP
print( “的<a href="http://www.kirupa.com/">能否真正掘地鼠队冲入代码PHP的? ” / 1 “ ” ) ;
? “
我要强调的地方是“改为 ”的着色这些字符的粉红色。每当你看到一个报价,只需添加一个在前面的(或替换引号与 “ ) 。我知道我的重复,一次又一次,但是这是一个小细节,你最终可能忘记在热的编码!

  快速综述
审查时间!您可以使用HTML标签在PHP中使用的print标记和正常的,日常的HTML 。
所有你做的是使用完全相同的HTML标记你通常会使用的HTML文件,但不同的是,您将在这些标记之间的print( “和” ) ;当你偏离这一格式是当您的HTML包含引号。

当您遇到的报价,取代您的报价与以下两个特点: “
 
 

例如更多地参与
下面的代码片段就是一个例子PHP和HTML一起使用。但愿它提供了一些深入了解PHP和HTML可以一起使用,以显示一些表格,图形和格式化文本:

“ ?的PHP
print( “ <font size="2" face="Arial"> ” ) ;
print( “ <table style="BORDER-COLLAPSE: collapse" width="350" border="2"> ” ) ;
print( “ <tr> <td width="2%" bgColor="#b7d0e3"> <font size="2"> ” ) ;
print( “ <img src="http://www.kirupa.com/mini_icons/robot_metal.gif">
“ /字型” “ /运输署” “ ) ;
print( “ <td width="98%" bgColor="#eaf1f7"> <font size="2"> <b>快速摘要” / b “ ” ) ;
print( “ ” /字型“ ” /运输署“ ” /文“ <tr> <td widt"100%" colSpan="2"> ” ) ;
print( “ <table borderColor="#111111" cellPadding="15" border="0"> ” ) ;
print( “ <tr> <td width="100%"> ” /字体“ <font size="2" face="Arial">复杂
例如,涉及表格和图片。 “ /字型” “ /运输署” “ ) ;
print( “ ” /文“ ” /表“ ” /运输署“ ” /文“ ” /表“ ” ) ;
? “
上面的例子中不使用任何新的东西,但它还是涉及了大量的backslashing 。

在先前的教程您可能已阅读, XML解析使用PHP ) (中间,充分XML解析器采用一流的,这需要吨行的代码和额外的时间。在PHP5 ,我们可以使用简单的XML类快速解析XML在只有两行代码。

我们的可扩展标记语言文字
我使用相同的文字作为Jubba的XML解析教程,但我可以补充一些属性向您展示的额外权力的简单的XML :

<description>Equipped with a Japanese Mind-control device, the giant monster has attacked important harbours along the California coast. President to take action. </description>
 </story>
 <story>
  <headline> Bigfoot Spotted at M.I.T. Dining Area </headline>
  <description>The beast was seen ordering a Snapple in the dining area on Tuesday. In a related story, Kirupa Chinnathambi, an MIT engineering student has been reported missing. </description>
 </story>
 <story>
  <headline> London Angel Saves England </headline>
  <description>The "London Angel" known only as "Kit" has saved the U.K. yet again. Reports have stated that she destroyed every single Churchill bobble-head dog in the country. A great heartfilled thank you goes out to her. </description>
 </story>
 <story>
  <headline> Six-eyed Man to be Wed to an Eight-armed Woman </headline>
  <description>Uhhhmmm... No comment really... just a little creepy to see them together... </description>
 </story>
 <story>
  <headline> Ahmed's Birthday Extravaganza! </headline>
  <description>The gifted youngster's birthday party should be a blast. He is turning thirteen and has requested a large cake, ice cream, and a petting zoo complete with pony rides. </description>
 </story>
</news>


我们的PHP代码
我知道你预期两百名左右线的先进PHP和无法理解的评论。你错了,这里的两行你需要一个简单的XML对象:


//Since we're already using PHP5, why don't we exploit their easy to use file_get_contents() command?
$xmlFileData = file_get_contents(“input.xml”);
//Here's our Simple XML parser!
$xmlData = new SimpleXMLElement($xmlFileData);
//And here's the output.
print_r($xmlData);


执行,在你的PHP服务器,你得到一些毫无意义的乱码像以下。
SimpleXMLElement Object (
 [story] => Array (
  [0] => SimpleXMLElement Object (
   [headline] => Godzilla Attacks LA!
   [description] => Equipped with a Japanese Mind-control device, the giant monster has attacked important harbours along the California coast. President to take action.
   )
  [1] => SimpleXMLElement Object (
   [headline] => Bigfoot Spotted at M.I.T. Dining Area
   [description] => The beast was seen ordering a Snapple in the dining area on Tuesday. In a related story, Kirupa Chinnathambi, an MIT engineering student has been reported missing.
   )
  [2] => SimpleXMLElement Object (
   [headline] => London Angel Saves England
   [description] => The "London Angel" known only as "Kit" has saved the U.K. yet again. Reports have stated that she destroyed every single Churchill bobble-head dog in the country. A great heartfilled thank you goes out to her.
   )
  [3] => SimpleXMLElement Object (
   [headline] => Six-eyed Man to be Wed to an Eight-armed Woman
   [description] => Uhhhmmm... No comment really... just a little creepy to see them together...
   )
  [4] => SimpleXMLElement Object (
   [headline] => Ahmed's Birthday Extravaganza!
   [description] => The gifted youngster's birthday party should be a blast. He is turning thirteen and has requested a large cake, ice cream, and a petting zoo complete with pony rides.
   )
  )
 )
)



为了获取数据实际上从混乱的价值观,我们可以使用它作为数组一类适用于它。像这样:


//Retrieving the headline from the first story
$xmlHeadline = $xmlData->story[0]->headline;
//Printing our first headline
print($xmlHeadline);


但是,如果你希望的日期的故事,但并不想加入另一个节点阵列的故事?只需添加一个属性。和简单的XML也能处理的属性!因此,我们新的XML看起来是这样的:

<?xml version="1.0"?>
<news>
 <story>
  <headline date=”January 19, 2005”> Godzilla Attacks LA! </headline>
  <description>Equipped with a Japanese Mind-control device, the giant monster has attacked important harbours along the California coast. President to take action. </description>
 </story>
 <story>
  <headline date=”February 14, 2006”> Bigfoot Spotted at M.I.T. Dining Area </headline>
  <description>The beast was seen ordering a Snapple in the dining area on Tuesday. In a related story, Kirupa Chinnathambi, an MIT engineering student has been reported missing. </description>
 </story>
 <story>
  <headline date=”May 27, 2006”> London Angel Saves England </headline>
  <description>The "London Angel" known only as "Kit" has saved the U.K. yet again. Reports have stated that she destroyed every single Churchill bobble-head dog in the country. A great heartfilled thank you goes out to her. </description>
 </story>
 <story>
  <headline date=”June 3, 2006”> Six-eyed Man to be Wed to an Eight-armed Woman </headline>
  <description>Uhhhmmm... No comment really... just a little creepy to see them together... </description>
 </story>
 <story>
  <headline date=”July 28, 2006”> Ahmed's Birthday Extravaganza! </headline>
  <description>The gifted youngster's birthday party should be a blast. He is turning thirteen and has requested a large cake, ice cream, and a petting zoo complete with pony rides. </description>
 </story>
</news>

所以,现在我们有我们的所有新闻和日期,但我们如何显示它的人?我们可以使用一个简单的foreach循环输出所有的人

//Outputing all of our XML to people
foreach($xmlData->story as $story) {
 print(“<h2>” . $story->headline . “</h2><br />”);
 print($story->description . “<br />_________________________<br />”);
 print($story->headline["date"] . “<br /><br />”);
 
}

[!--infotagslink--]

相关文章

  • java8如何用Stream查List对象某属性是否有重复

    这篇文章主要介绍了java8如何用Stream查List对象某属性是否有重复的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-11
  • 图解PHP使用Zend Guard 6.0加密方法教程

    有时为了网站安全和版权问题,会对自己写的php源码进行加密,在php加密技术上最常用的是zend公司的zend guard 加密软件,现在我们来图文讲解一下。 下面就简单说说如何...2016-11-25
  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • R语言 如何删除指定变量或对象

    这篇文章主要介绍了R语言删除指定变量或对象的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
  • ps怎么使用HSL面板

    ps软件是现在很多人都会使用到的,HSL面板在ps软件中又有着非常独特的作用。这次文章就给大家介绍下ps怎么使用HSL面板,还不知道使用方法的下面一起来看看。 &#8195;...2017-07-06
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • JavaScript预解析,对象详解

    这篇文章主要介绍了JavaScript预解析,对象的的相关资料,小编觉得这篇文章写的还不错,需要的朋友可以参考下,希望能够给你带来帮助...2021-11-10
  • 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
  • 使用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
  • 如何在Spring WebFlux的任何地方获取Request对象

    这篇文章主要介绍了如何在Spring WebFlux的任何地方获取Request对象,帮助大家更好的理解和使用springboot框架,感兴趣的朋友可以了解下...2021-01-26
  • index.php怎么打开?如何打开index.php?

    index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
  • 安装和使用percona-toolkit来辅助操作MySQL的基本教程

    一、percona-toolkit简介 percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括: 检查master和slave数据的一致性 有效地对记录进行归档 查找重复的索...2015-11-24
  • php语言中使用json的技巧及json的实现代码详解

    目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。我写过一篇《数据类型和JSON格式》,探讨它的设计思想。今天,我想总结一下PHP语言对它的支持,这是开发互联网应用程序(特别是编写API)必须了解的知识...2015-10-30
  • 牛叉的Jquery――Jquery与DOM对象的互相转换及DOM的三种操作

    只有jQuery对象才能调用jQuery类库的各种函数,同样有些dom对象的属性和方法在jQuery上也是无法调用的,不过基本上jQuery类库提供的函数包含了所有的dom操作。这就需要我们知道如何将jQuery对象和DOM的相互转换的方法。1...2015-10-30