PHP新手之PHP入门
创始人
2024-08-02 12:21:08
0

PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点。而本文的该部分将让你对PHP熟悉一点。我不可能做到没有任何遗漏,我的目的只在于能让你迅速开始你的PHP编程。

一、 首要条件

你首先必须要有一个正在工作着的支持PHP的web服务器。我假定在你的服务器上所有PHP文件的扩展名为.php3。

二、 PHP的安装

生成一个名为test.php3的文件,含有以下内容:

  1.   

 

然后在你的浏览器中打开此文件。看看这个页面你就知道你的PHP安装使用的选项了。

三、 语法

就像前面提到的一样,你可以混合编写你的PHP代码和HTML代码。因此你必须有办法将两者区别开来。以下就是你可以采用的几种方法。你可以选用其中一种你最适应的并且就这样坚持这种方法!

从HTML中分离

以下是可以使用的方法:

  1.    
  2.    
  3.  . . .    
  4. <% . . . %> 

 

语句

与Perl和C一样,在PHP中用(;)来分隔语句。那些从HTML中分离出来的标志也表示语句的结束。

注释

PHP支持C,C++和Unix风格的注释方式:

 

  1. /* C,C++风格多行注释 */   
  2. // C++风格单行注释   
  3. # Unix风格单行注释 

 

例子:Hello,World!

通过我们已经学过的知识,你可以编写一个最简单的程序输出一个也许是程序世界中最有名的词语:

  1.    
  2.    
  3.    </li><li><?   </li><li class="alt">echo "Hello World!";   </li><li>?>   </li><li class="alt">   
  4.    
  5.    
  6.    

  7. First PHP page   
  8.    

  9.    
  10. // Single line C++ style comment   
  11. /*   
  12. printing the message   
  13. */   
  14. echo "Hello World!";   
  15. # Unix style single line comment   
  16. ?>   
  17.    
  18.  

 

#p#

四、 数据类型

PHP支持整数、浮点数、字符串、数组和对象。变量类型通常不由程序员决定而由PHP运行过程决定(真是好的解脱!)。但是类型也可以被函数cast或者settype()明确的设定。

数值

数值类型可以是整数或是浮点数。你可以用以下的语句来为一个数值赋值:

  1. $a = 1234; # 十进制数   
  2. $a = -123; # 负数   
  3. $a = 0123; # 八进制数 (等于十进制数的83)   
  4. $a = 0x12; # 十六进制数(等于十进制数的18)   
  5. $a = 1.234; # 浮点数"双精度数"   
  6. $a = 1.2e3; # 双精度数的指数形式 

 

字符串

字符串可以由单引号或双引号引出的字段定义。注意不同的是被单引号引出的字符串是以字面定义的,而双引号引出的字符串可以被扩展。反斜杠(\)可以被用来分割某些特殊字符。举例如下:

  1. $first = 'Hello';   
  2. $second = "World";   
  3. $full1 = "$first $second"; # 产生 Hello World   
  4. $full2 = '$first $second';# 产生 $first $second 

 

可以将字符和数字利用运算符号连接起来。字符被转化成数字,利用其最初位置。在PHP手册中有详细的例子。

数组与哈希表

数组与哈希表以同样的方法被支持。怎样运用取决于你怎样定义它们。你可以用list()或者array()来定义它们,也可以直接为数组赋值。数组的索引从0开始。虽然我在这里没有说明,但是你一样可以轻易的使用多维数组。

 

  1. // 一个包含两个元素的数组   
  2. $a[0] = "first";   
  3. $a[1] = "second";   
  4. $a[] = "third"; // 添加数组元素的简单方法   
  5. // 现在$a[2]被赋值为"third"   
  6. echo count($a); // 打印出3,因为该是数组有3个元素   
  7. // 用一个语句定义一个数组并赋值   
  8. $myphonebook = array (   
  9. "sbabu" => "5348",   
  10. "keith" => "4829",   
  11. "carole" => "4533"   
  12. );   
  13. // 噢,忘了教长吧,让我们添加一个元素   
  14. $myphonebook["dean"] = "5397";   
  15. // 你定义的carale元素错了,让我们更正它   
  16. $myphonebook["carole"] => "4522"   
  17. // 我还没有告诉你怎样使用数组的相似支持方式吗?让我们看一看   
  18. echo "$myphonebook[0]"; // sbabu   
  19. echo "$myphonebook[1]"; // 5348 

 

其他一些对数组或哈希表有用的函数包括sort(),next(),prev()和each()。

对象

使用new语句产生一个对象:

  1. class foo   
  2. {   
  3. function do_foo ()   
  4. {   
  5. echo "Doing foo.";   
  6. }   
  7. }   
  8. $bar = new foo;   
  9. $bar->do_foo(); 

 

改变变量类型

在PHP手册中提到:"PHP不支持(也不需要)直接在声明变量时定义变量类型;变量类型将根据其被应用的情况决定。如果你为变量var赋值为一个字符串,那么它变成了一个字符串。如果你又为它赋了整数值,那么它就变成了整数。"

  1. $foo = "0"; // $foo是字符串(ASCII 48)   
  2. $foo++; // $foo是字符串"1" (ASCII 49)   
  3. $foo += 1; // $foo现在是整数(2)   
  4. $foo = $foo + 1.3; // $foo是一个双精度数(3.3)   
  5. $foo = 5 + "10 Little Piggies"; // $foo是一个整数(15)   
  6. $foo = 5 + "10 Small Pigs"; // $foo是一个整数(15) 

 

如果想要强行转换变量类型,可以使用与C语言相同的函数settype()。

#p#

五、 变量与常量

可能你已经注意到,变量都有一个美元符号($)的前缀。所有变量都是局部变量,为了使得定义的函数中可以使用外部变量,使用global语句。而你要将该变量的作用范围限制在该函数之内,使用static语句。

  1. $g_var = 1 ; // 全局范围   
  2. function test()   
  3. {   
  4. global $g_var; // 这样就可以声明全局变量了   

 

更先进一些的是变量的变量表示。请参考PHP手册。这在有时会显得很有用。

PHP内置了许多已定义的变量。你也可以用define函数定义你自己的常量,比如define("CONSTANT","value")。

六、 运算符

PHP具有C,C++和Java中的通常见到的运算符。这些运算符的优先权也是一致的。赋值同样使用"="。

算术和字符

以下只有一种运算符是有关字符的:

  • $a + $b :加
  • $a - $b :减
  • $a * $b :乘
  • $a / $b :除
  • $a % $b :取模(余数)
  • $a . $b :字符串连接

逻辑和比较

逻辑运算符有:

  • $a || $b :或
  • $a or $b :或
  • $a && $b :与
  • $a and $b :与
  • $a xor $b :异或 (当$a或$b为true时为true,两者一样时为false)
  • ! $a :非

比较运算符有:

  • $a == $b :相等
  • $a != $b :不等
  • $a < $b :小于
  • $a <= $b :小于等于
  • $a > $b :大于
  • $a >= $b :大于等于

与C一样PHP也有三重运算符(?:)。位操作符在PHP同样存在。

优先权

就和C以及Java一样!

#p#

七、 控制流程结构

PHP有着与C一样的流程控制。我将在下面大概介绍。

if, else, elseif, if(): endif

 

  1. if (表达式一)   
  2. {   
  3. . . .   
  4. }   
  5. elseif (表达式二)   
  6. {   
  7. . . .   
  8. }   
  9. else   
  10. {   
  11. . . .   
  12. }   
  13. // 或者像Python一样   
  14. if (表达式一) :   
  15. . . .   
  16. . . .   
  17. elseif (表达式二) :   
  18. . . .   
  19. else :   
  20. . . .   
  21. endif ; 

 

Loops. while, do..while, for

 

  1. while (表达式)   
  2. {   
  3. . . .   
  4. }   
  5. do   
  6. {   
  7. . . .   
  8. }   
  9. while (表达式);   
  10. for (表达式一; 表达式二; 表达式三)   
  11. {   
  12. . . .   
  13. }   
  14. //或者像Python一样   
  15. while (expr) :   
  16. . . .   
  17. endwhile ; 

 

switch

switch是对多重if-elseif-else结构的***的替换:

  1. switch ($i)   
  2. {   
  3. case 0:   
  4. print "i equals 0";   
  5. case 1:   
  6. print "i equals 1";   
  7. case 2:   
  8. print "i equals 2";   

 

break, continue

break中断当前的循环控制结构。
 

continue被用来跳出剩下的当前循环并继续执行下一次循环。

require, include

就像C中的#include预处理一样。你在require中指定的那个文件将替代其在主文件中的位置。在有条件的引用文件时,可以使用include()。这样就使得你可以将复杂的PHP文件分割成多个文件并且在不同需要时分别引用它们。

八、 函数

你可以像以下的例子一样定义自己的函数。函数的返回值可以是任何数据类型:

  1. function foo (变量名一, 变量名二, . . . , 变量名n)   
  2. {   
  3. echo "Example function.\n";   
  4. return $retval;   
  5. }  

 

所有PHP代码都可以出现在函数定义中,甚至包括对其他函数和类的定义。函数必须在引用之前定义。

九、 类

利用类模型建立类。可以参考PHP手册中对类的详细解释。

  1. class Employee   
  2. {   
  3. var $empno; // 员工人数   
  4. var $empnm; // 员工姓名  
  5. function add_employee($in_num, $in_name)   
  6. {   
  7. $this->empno = $in_num;   
  8. $this->empnm = $in_name;   
  9. }  
  10. function show()   
  11. {   
  12. echo "$this->empno, $this->empnm";   
  13. return;   
  14. }  
  15. function changenm($in_name)   
  16. {   
  17. $this->empnm = $in_name;   
  18. }   
  19. }  
  20. $sbabu = new Employee;   
  21. $sbabu->add_employee(10,"sbabu");   
  22. $sbabu->changenm("babu");  
  23. $sbabu->show(); 

 

到此,本文介绍完了,希望对你有帮助。

【编辑推荐】

  1. 细说PHP中strlen和mb_strlen的区别
  2. 再议PHP程序语言中 单双引号的区别
  3. 内嵌式的语言PHP应用技巧七则
  4. 非常实用 十个PHP高级应用技巧
  5. PHP中单引号和双引号的区别

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...