PHP网页编程之PHP3中文文档(续4)
在学习PHP这六个月里,每看到一个优秀的php脚本,就会兴奋的手舞足蹈,嘴里还不停的说:太酷了,太酷了。呵呵,很幼稚吧,但这可能就是兴趣。中文 为了了解SWITCH语句为了回避语句冗杂,晓得它若何被履行的长短常主要的.SWITCH语句石一行一行 履行的(现实上,是一条语句一条语句).在入手下手时,没有代码被履行.仅仅当一个值于SWITCH表达式的语句的值不异的CASE语句被发明后,PHP持续履行语句直到SWITCH体的停止,或呈现了BREAK语句.假如你在一个分支语句的前面没有写BREAK语句,PHP将持续履行上面分支的语句.例如:/* example 3 */
switch ($i) {
case 0:
print "i equals 0";
case 1:
print "i equals 1";
case 2:
print "i equals 2";
}
这里,假如$i等于0,PHP将会履行一切打印语句.假如$i等于1,PHP将会履行剩下的两个打印语句,而且仅仅当$i等于2的时分,你才干失掉你希冀的履行了局,只要’I equals 2’被显示.因而不要在每个分支语句的前面健忘BREAK语句(即便你在必定的情况下有能够想防止供应他们).
一个特别的分支是默许的分支.这个分支可以婚配任何其它分支没有婚配的工作.例如:
/* example 4 */
switch ($i) {
case 0:
print "i equals 0";
break;
case 1:
print "i equals 1";
break;
case 2:
print "i equals 2";
break;
default:
print "i is not equal to 0, 1 or 2";
}
别的一个值得一提的现实是CASE表达式可所以任何盘算标量类型的表达式,也就是说,整型或实型和字符型.数组和对象将不会招致PHP溃散,然而他们没有无任何意义.
REQUIRE
REQUIRE语句利用指定的文件来取代它本人,与C言语中的#include语句十分类似。这意味着你不克不及把一个require()语句放在一个轮回体中,而且希冀它在每次重复中都包括分歧文件的内容.为了到达这个目标,可使用INCLUDE语句。
require ('header.inc');
INCLUDE
INCLUDE语句包含和盘算指定文件.
在每次遭受INCLUDE语句的时分城市停止一次.因而你可以在一个轮回体中利用INCLUDE语句.以用来包括一些分歧的文件.
$files = array ('first.inc', 'second.inc', 'third.inc');
for ($i = 0; $i < count($files); $i++) {
include($files[$i]);
}
INCLUDE()与REQUIRE()语句是分歧的,include语句是每次都从头盘算(而且仅仅当它被履行的时分),而require()语句当他第一次被碰着的时分,用指定的文件来取代它自己,不管这个文件的内容是不是被盘算(例如,假如它呈现在一个前提为FALSE的if语句中).
由于include()是一个特别的言语布局,你必需在一个语法块中关闭它,假如它在一个前提块中.
/*毛病,不会同假想一样任务. */
if ($condition)
include($file);
else
include($other);
/*上面是准确的. */
if ($condition)
{
include($file);
}
else {
include($other);
}
当一个文件被盘算的时分,语法剖析将处在”HTML-形式”中,这个形式将输入这个文件的内容直到第一个PHP入手下手标签(<?)被碰到.
参考 readfile(),virtual().
函数
一个function(函数)可使用以下语法来界说
function foo ($arg_1, $arg_2, ..., $arg_n) {
echo "Example function.\n";
return $retval;
}
任何无效的PHP代码可以呈现在function(函数)中,即便是其它的函数或类界说.
Function必需在他们被援用之前界说.
前往值
利用一些可选的前往语句,任何类型的数值都能被前往,包含对象和狭义表.
function my_sqrt ($num)
{
return $num * $num;
}
echo my_sqrt (4); // 输入 '16'.
可以前往多值,然而同时的影响使经由过程一个狭义表来完成:
function foo()
{
return array (0, 1, 2);
}
list ($zero, $one, $two) = foo();
参数
经由过程参数表可以传递信息到函数,这个表可所以变量或常量以逗号(,)分隔组成的。
PHP3撑持利用值来传递变量(默许),经由过程挪用传递,和默许的参数值.可变长度的参数列表今朝不被撑持,然而可以经由过程传递数组来完成.
function takes_array($input) {
echo "$input + $input = ", $input+$input;
}
经由过程挪用传递(Passing by reference)
默许的,函数参数经由过程值来传递.假如你但愿答应一个函数可以修正它的参数的值,你可以经由过程挪用来传递他们.
假如你但愿一个函数参数意志经由过程援用被传递,你可以事后函数界说中在参数名前加符号(&):
function foo( &$bar ) {
$bar .= ' and something extra.';
}
$str = 'This is a string, ';
foo ($str);
echo $str; // 输入 'This is a string, and something extra.'
假如你但愿向一个不是用这类体例界说的函数用挪用的体例传递参数,你可以在函数挪用中的参数称号前加符号(&).
function foo ($bar) {
$bar .= ' and something extra.';
}
$str = 'This is a string, ';
foo ($str);
echo $str; //输入 'This is a string, '
foo (&$str);
echo $str; //输入 'This is a string, and something extra.'
默许值
一个函数关于标量参数可以界说C++-作风的默许值.
function makecoffee ($type = "cappucino") {
echo "Making a cup of $type.\n";
}
echo makecoffee ();
echo makecoffee ("espresso");
下面的法式段的输入以下:
Making a cup of cappucino.
Making a cup of espresso.
默许值必需是一个常量表达式,不是一个变量或类成员.
注重事先用默许参数时,任何默许都应当在任何非默许参数右侧;不然,工作将不会想你所想的那样.思索上面的法式段:
function makeyogurt ($type = "acidophilus", $flavour) {
return "Making a bowl of $type $flavour.\n";
}
echo makeyogurt ("raspberry"); // 将不会依照料想任务
下面例子的输入是:
Warning: Missing argument 2 in call to makeyogurt() in
/usr/local/etc/httpd/htdocs/php3test/functest.html on line 41
Making a bowl of raspberry .
如今,用上面的对照下面的:
function makeyogurt ($flavour, $type = "acidophilus"){
return "Making a bowl of $type $flavour.\n";
}
echo makeyogurt (“raspberry”);//正常任务
这个例子的输入是:
Making a bowl of acidophilus raspberry.
OLD_FUNCTION
OLD_FUNCTION语句答应你声明一个利用PHP/FI2 的语法的函数(你需求做的就是把’function’交换成’old_function’.
这是一个不被同意的特点,而且应当仅仅被PHP/FI2到PHP3的转换这利用.
界说成为OLD_FUNCTION形式的函数不克不及被PHP的外部代码挪用。个中之一的情形是,意味着您不克不及在象as usort()、array_walk()和register_shutdown_function().如许的函数中利用利用他们。您可使用编写互换函数的办法来挪用OLD_FUNCTION形式的函数(在通俗的PHP3表单中)。
CLASS
一个class是一个变量和利用这些变量的函数的组合。界说class利用以下的语法:
<?phpclass Cart { var $items; // Items in our shopping cart
// Add $num articles of $artnr to the cart
function add_item ($artnr, $num) { $this->items[$artnr] += $num; }
// Take $num articles of $artnr out of the cart
function remove_item ($artnr, $num) {
if ($this->items[$artnr] > $num) {
$this->items[$artnr] -= $num;
return true;
} else {
return false;
}
}
}
?>
如上所示,界说了一个名字为Cart的class。这个class由多个描述物品的数组和添加项目、删除项目标函数构成。
Class是一品种型,这就是说,它是实践变量的设计蓝图。您可以依据设计创立一个变量组和针对它们的一些新的操作。示例以下:
$cart = new Cart;
$cart->add_item("10", 1);
如上所示,创立了一个类型为class Cart的对象$cart。这个对象中的函数add_item()被挪用来添加一个物品号为10的项目。
Class可使用其他的Class来扩大。这个扩大的或承继的class(类)具有根基class一切的变量和函数同时您还可以在个中加如您本人做的扩大界说。要如许界说需求利用扩大界说的关头词。
class Named_Cart extends Cart {
var $owner;
function set_owner ($name) {
$this->owner = $name;
}
}
以上界说了一个名字为Named_Cart的class(类),这个类具有一切包括于类Cart中的变量和函数,同时还添加了一个变量$owner和函数set_owner()。您可以创立一个着名字的cart,同时取得cart的具有者名字。您还可以在类Named_Cart中,利用通俗的属于类cart的函数。
$ncart = new Named_Cart; // Create a named cart
$ncart->set_owner ("kris"); // Name that cart
print $ncart->owner; // print the cart owners name
$ncart->add_item ("10", 1); // (inherited functionality from cart)
在这个类的函数中变量$this暗示这个对象。在以后的对象中,您可使用$this->something来会见任何变量和函数。
当您创立一个新的类时,有一个机关器函数将被主动的挪用。假如某个函数的名字和类的名字一样,那末它就成为机关器:
class Auto_Cart extends Cart {
function Auto_Cart () {
$this->add_item ("10", 1);
}
}
在下面的例子中,界说了一个名字为Auto_Cart的类,它是在本来的类Cart中加上了一个机关器函数,这个机关器函数初始化了类Cart利用的办法是:在每次创立一个类的时分添加一个物品号为10的一个项目。机关器还可以显示一些信息,这些信息可以被随便的遴选,这使他们可以变的非常的有效,
class Constructor_Cart {
function Constructor_Cart ($item = "10", $num = 1) {
$this->add_item ($item, $num);
}
}
// Shop the same old boring stuff
$default_cart = new Constructor_Cart;
// Shop for real...
$different_cart = new Constructor_Cart ("20", 17);
我假设你目前已经可以完成一个静态页面了,当然,做的好看难看是另外一说,皮皮我的第一个网页也没好看到哪去,但是“孩子”再丑,咱们做“爹妈”的也不能嫌弃不是?这毕竟是咱的成果。 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。 要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。 多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。 在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、 我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能: 刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。 首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。 你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。 使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。 为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。 本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。 爱上php,他也会爱上你。 为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。 有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。 为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。 当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标, 基础有没有对学习php没有太大区别,关键是兴趣。
页:
[1]