仓酷云

标题: PHP网页编程之第三章 语法 5,函数与类 [打印本页]

作者: 小女巫    时间: 2015-2-4 00:09
标题: PHP网页编程之第三章 语法 5,函数与类
PHP和HTML混合编程应该不成问题,在这期间,你完全可以让PHP给你算算 一加一等于几,然后在浏览器输出,不要觉得幼稚,这的确是跟阿波罗登月一样,你打的是一小段代码,但是对于你的编程之路,可是迈出了一大步啊!兴奋吧?但是不得不再给你泼点冷水,您还是菜鸟一个。函数|语法   函数
在 PHP 中,答应法式设计者将经常使用的流程或变量等元件,组织成一个固定的格局。也就是说用户可以自行组合函数或是类。
PHP 中的函数 (function) 和 C 言语一样,包含有前往值及无前往值,不像 Pascal 分红函数 (function) 和法式 (procedure) 那末庞杂。
在函数的称号上,PHP 关于巨细写的控制很松懈。可以在界说函数时写成大写的名字,而在利用时利用小写的名字。总之,对函数而言,不必管巨细写,只需注重称号没有反复就行了。
以下就是函数的利用语法

function myfunc($arg_1, $arg_2, ..., $arg_n) {
  // 履行一些步调
  return $retval;
}
在利用时,在自定的函数称号前要到场 function 的保存字,暗示这是界说用户自定函数。以后的 myfunc 可所以任何的英文字母开首的字符串,字符串除开首不克不及是数字或是下划线,在第一个字母后可所以阿拉伯数字或是下划线,固然其它的符号或是中文字不克不及当函数名。
$arg_1 到 $arg_n 为函数利用的参数,参数之间利用逗号离隔。在参数后的大括号 {},即为全部函数的局部。函数假如前往值,利用 return 可将值前往。而参数可以事前界说初始值或默许值。有界说默许值参数在利用函数时可以省略,但必定要放在没有设置装备摆设默许值参数的前面,不然 PHP 在解析函数时,会呈现毛病。
别的就是参数的类型,只需参数是 PHP 撑持的变量类型都可使用,不管是数组、字符串、或是整数....等等。前往值也是一样。
上面即为利用默许值及不必默许值例子
<?php
function myfunc1($arg_1, $arg_2, $arg_3="我是默许字符串") {
  echo $arg_1+$arg_2;
  echo $arg_3."<p>\n";
}
myfunc(3, 4);               // 参数 $arg_3 省略。
myfunc(6, 6, "不必默许值")  // 输出参数 $arg_3。
?>

参数的值,凡是利用传值体例输出,有时在值得的需求时,可使用传址的体例,传入参数的指针。办法就是在参数的后面加上 & 符号便可。以下例
<?php
function myfunc2(&$argstr) {
  $argstr=ereg_replace("/", "-", $argstr);
}
$today="2000/01/01";
myfunc2($today);
echo $today;   // 2000-01-01;
?>


用户界说的类,也是学好 PHP 所必备的前提之一。而 PHP 的类,和其它的面向对象言语对照起来,还算蛮纯真的。PHP 只要种别 (class)、办法 (method)、属性、和单一承继 (extensions) 等。对不习气利用 C++、Java、Delphi 等面向对象言语来开辟法式的用户,无妨先浏览一下有关面向对象概念的书,信任可以带来很多的播种。
上面的典范是手推车类。可以看到,利用 class 暗示它是一个类种别。在种别中的 function,例如 add_item 则暗示该类的一个办法。办法可以封装类的实践处置情况,让该类本人能依封装好的办法来履行一些步调。
法式中的 $this 类变量也和 $GLOBALS 及 $php_errormsg 两个变量一样,在 PHP 中属于特别的变量。$this 变量只用在类种别中,暗示类的自己。
<?php
// 法式名: cart.inc
class Cart {
  var $items;  // 手推车类
  
  // 本办法到场 $num 件物品得手推车中 (加到 $artnr 变量)
  function add_item ($artnr, $num) {
    $this->items[$artnr] += $num;
  }
  
  // 本办法从手推车削减 $num 件物品 (从 $artnr 变量减失落)
  function remove_item ($artnr, $num) {
    if ($this->items[$artnr] > $num) {
      $this->items[$artnr] -= $num;
      return true;
    } else {
      return false;
    }   
  }
}
?>

要利用手推车可以用相似下例的体例。可以先将每一个类存成 Include 文件,再将它 require 或 include 出去。在界说变量 $cart 时,要利用 new 的保存字,暗示 $cart 利用 Cart 类。利用 -> 符号,暗示履行类的办法。
<?php
require("cart.inc");
$cart = new Cart;
$cart->add_item("10", 1);
?>

以后再设计有记名的手推车。记名手推车从手推车遗传上去,因而手推车具有的办法及属性,记名手推车也有,而记名手推车比手推车增添了名字的办法 (也许该称属性较得当)。
从下例中可以看到,子类 Named_Cart 利用 extends 来承继其父类 Cart。固然 Named_Cart 类中没有增添物品及削减物品的办法,不外因为遗传的特征,父类有的器材它都有。
<?php
// 法式名: named_cart.inc
require("cart.inc");
class Named_Cart extends Cart {
  var $owner;
  function set_owner ($name) {
    $this->owner = $name;
  }
}
?>

要利用记名手推车类,请看上面的典范。固然这不算太好的设计,每一个子类都一向 require 它的父类,会形成办事器在 I/O 下面的承当。在实作时,可以将全部系列的类在统一个法式文件中,从最早的先类到最初的子孙类,也便利往后修改。
<?php
require("named_cart.inc");
$ncart = new Named_Cart;           // 创立类变量
$ncart->set_owner ("CyberRidder"); // 设置装备摆设类的记名属性
echo $ncart->owner;                // 显示类的记名属性
$ncart->add_item ("10", 1);        // 从父类遗传的办法也可以使用
?>

因而,在 PHP 中利用了 extends 保存字,加上优秀的体系剖析与完全的 CRC 卡片 (详会晤向对象相干书本) 设计以后,PHP 可酿成具有壮大类才能的 CGI 言语。
PHP 因为是剧本言语 (Script),因而法式源代码可见,在软件工程中的元件黑箱其实不会在今朝的 PHP 版本中呈现,也就是说,全体的类其实没有埋没起它的内容。关于软件业者而言,没有举措回护所谓的软件 IC,站在开放整体而言,反而有源代码是件功德,至于孰是孰非,就很难剖断了,不外今朝 PHP 仍是 Open Source 整体的一分子,也许往后 Zend 引擎可以做到类封装的功效也纷歧定。

多个成员之间重复做相同的工作,很容易因为交流沟通的时候没有进行一致性的文档要求而出现不明错误,严重影响开发进度,导致在预定时间内无法完成该项目或者完成的项目跟原先计划所要实现的项目功能不符合。
作者: 因胸联盟    时间: 2015-2-4 09:30
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
作者: 飘飘悠悠    时间: 2015-2-5 14:03
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: 飘灵儿    时间: 2015-2-12 00:00
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
作者: 再见西城    时间: 2015-2-20 18:42
当然这种网站的会员费就几十块钱。
作者: 莫相离    时间: 2015-3-1 05:26
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
作者: 活着的死人    时间: 2015-3-8 19:27
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
作者: admin    时间: 2015-3-11 19:14
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
作者: 若天明    时间: 2015-3-13 22:10
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
作者: 蒙在股里    时间: 2015-3-15 03:27
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
作者: 兰色精灵    时间: 2015-3-17 10:16
本文当是我的笔记啦,遇到的问题随时填充
作者: 山那边是海    时间: 2015-3-24 04:36
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
作者: 变相怪杰    时间: 2015-3-24 15:31
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
作者: 小魔女    时间: 2015-3-25 05:14
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
作者: 柔情似水    时间: 2015-3-31 04:02
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
作者: 乐观    时间: 2015-4-1 15:09
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
作者: 不帅    时间: 2015-4-6 17:16
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
作者: 谁可相欹    时间: 2015-4-6 20:09
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
作者: 深爱那片海    时间: 2015-4-12 05:55
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
作者: 仓酷云    时间: 2015-4-23 07:57
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2