PHP学习笔记之一

配置PHP以及MySQL的过程略去,如果在Ubuntu下,参考 Ubuntu 10.04 Installation Memo 即可。

1. 基本语法

要在HTML代码中嵌入PHP脚本的方法是在<?php ?>中书写代码。向浏览器输出数据采用echo或者print函数。echo可以接受多个参数,print 只能接受一个。echo的形式是
void echo(string arg1,[,…string argn]);
PHP语法允许省略括号。 例如,
复制代码 代码如下:
<?php
$my =' my ';
echo 'Hello',$my,'world'
?>

将会在浏览器上输出 Hello my world
PHP 还支持一个和C语言很像的printf函数,例如 printf(‘ %d apples',100),将会输出 100 apples。sprintf的用法和printf一致,不过它不是输出到浏览器,而是返回一个字符串。
2.数据类型和变量
PHP是弱类型的,一个变量不需要预先声明,也不需要指定类型。PHP中变量是$加上变量名,PHP的变量是区分大小写的。 例如上例中的 $my='my'。
PHP支持的变量类型包括:布尔型,整型,浮点型,字符串,数组和对象。前四种很常用,也和其他语言类似,不多做介绍。数组和对象后文具体介绍。
PHP中有函数来检测 对象的类型,它们是 getttype。gettype返回一个string,它的值可以是array,boolean,double,integer,object,resource,string 和 unknow type. PHP也支持显式的类型转换,语法和C类似。

转换操作符 转换为
(array) 数组
(bool) (boolean) 布尔型
(int) (integer) 整数
(object) 对象
(float),(double),(real) 浮点数
(string) 字符串

例如:
复制代码 代码如下:
<?php
$str ='a string';
$num=15;
$numstr='123.3';
echo gettype($str),'<br/>';
echo gettype($num),'<br/>';
echo gettype($numstr),'<br/>';
$numstr=(float)$numstr;
echo gettype($numstr);
?>

输出结果为:

string
integer
string
double

还有函数可以用来判断一个变量是不是某种类型,例如 is_array(),is_bool()等等,用法都类似。

3. 函数和变量作用域
PHP声明函数的方法很简单,形式如下:
复制代码 代码如下:
function functionName(parameters){
function body
}

不需要指定返回类型,括号中也不需要指定变量类型,只要有变量名就可以。例如:
复制代码 代码如下:
<?php
function taxedPrice($price,$taxrate){
return $price*(1+$taxrate);
}
echo taxedPrice(100, 0.03);
?>

默认情况下,PHP是按值传递参数的,在函数内改变参数的值并不会改变函数外变量的值,但是PHP也支持按引用传递,语法和C一致,&$paramName,例如,下面一个经典的例子:
复制代码 代码如下:
<?php
function swap1($x,$y){
$t=$x;$x=$y;$y=$t;
}
function swap2(&$x,&$y){
$t=$x;$x=$y;$y=$t;
}
$a=3;$b=5;
swap1($a,$b);
printf("a is %d, b is %d <br/>",$a,$b);
swap2($a,$b);
printf("a is %d, b is %d <br/>",$a,$b);
?>

输出结果:

a is 3, b is 5
a is 5, b is 3

PHP的函数还支持参数的默认值,语法和C也是一样的。例如:
复制代码 代码如下:
<?php
function taxedPrice($price,$taxrate=0.03){
return $price*(1+$taxrate);
}
echo taxedPrice(100);
?>

下面介绍变量的作用域。PHP的变量作用域和C很类似,有局部变量,函数参数,全局变量,静态变量4种。局部变量就是在函数内声明的变量,函数参数是在函数首部声明的变量;不在函数中声明的变量是全局变量,全局变量可以在任何地方访问到,但是和C不同的是,如果在函数中要修改全局变量的值需要用GLOBAL关键字显式指定它是全局变量,否则PHP就会声明一个同名的局部变量并且覆盖它。例如:
复制代码 代码如下:
<?php
$taxrate=0.03; //global
function change1() {
$taxrate+=1;
}
function change2() {
GLOBAL $taxrate;
$taxrate+=1;
}
change1();
echo $taxrate,'<br/>';
change2();
echo $taxrate,'<br/>';
?>

输出的结果是:

0.03

1.03

PHP还有一种超级全局变量。超级全局变量是由PHP系统预定义的,主要用来访问与环境有关的信息,例如当前用户会话,用户操作环境和本地环境等。超级全局变量是一个数组,例如$_SERVER中存储了服务器相关的信息。$_GET,$_POST,$_FILES,$_COOKIE中分别存储了客户端采用get提交,和post的提交的信息,上传的文件,cookie信息等。这些变量的使用都很简单,需要什么信息只需要查找

4 变量的变量
和C一类的静态语言不同,PHP的变量名本身可以是一个变量,这对于需要动态生成很多变量的时候是很便利的。例如:
复制代码 代码如下:
<?php
$r="hello";
$$r="I am hello";
echo $hello;
?>

输出结果为: I am hello

5.流程控制语句
主要包括,if else, while,for,do while,switch. 这些和C语言都很像,基本是一致的。不多做介绍。有些不同,PHP的 elseif是一个关键字,是连在一起的,而C语言是else if。

时间: 2024-08-02 15:20:12

PHP学习笔记之一的相关文章

JetSpeed学习笔记(一)

笔记 JetSpeed学习笔记(一) fuweilin 2005-4-7 前言 参加了公司的portal的兴趣小组,今天对portal进行学习.首先上网看了看一些portal的资料,对portal.portlet.portlet container以及JSR168等概念有个基本的了解.决定进一步实战的方式感受portal,于是学习JetSpeed.     1.  JetSpeed介绍JetSpeed是Apache组织开发的一个采用Java和XML的开放源代码的企业信息门户的实现.门户可以让终端

PHP输入输出流学习笔记

  这篇文章主要介绍了PHP输入输出流学习笔记,PHP输入和输出流是通过php://来访问的,它允许访问 PHP 的输入输出流.标准输入输出和错误描述符,内存中.磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器,需要的朋友可以参考下 PHP输入和输出流是通过php://来访问的,它允许访问 PHP 的输入输出流.标准输入输出和错误描述符, 内存中.磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器. php://stdin, php://stdout 和 php://std

PHP学习笔记 (1) 环境配置与代码调试

一配置PHP环境 1.了解什么是PHP PHP("PHP: Hypertext Preprocessor",超文本预处理器的字母缩写) PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写.PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用 2.PHP的背景和优势 PHP的发展背景 1).1994年由Rasmus Lerdorf创建,开始是一个简单的Perl语言编写的程序,用统计

Node.js 学习笔记之简介、安装及配置

 本文是Node.js学习笔记系列文章的第一篇,主要给大家讲解的是在Windows和Linux上安装Node.js的方法.软件安装版本以0.12.0为例.希望大家能够喜欢.     简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好. 谁适合阅

node.js学习笔记(9) 和谐模式

众所周知,ECMAScript 是一种开放的.国际上广为接受的脚本语言规范. 它本身并不是一种脚本语言.正如在 Web 应用程序中执行有用操作的 bean 集合(例如,Netscape 的 AWT)是 Sun 的 JavaBean 规范的一种实现一样,JavaScript 是 ECMAScript 规范的一种实现. 2015年6月17日,ECMA国际发布了EcmaScript2015,即EcmaScript6(以下简称ES6)草案的正式版.ES6是继ES5之后的一次主要改进,语言规范由ES5.1

php5学习笔记(转)

php5|笔记 作者: whhwq在phpv.net看到的感觉不错/*+-------------------------------------------------------------------------------+| = 本文为Haohappy读<<Core PHP Programming>> | = 中Classes and Objects一章的笔记 | = 翻译为主+个人心得 | = 为避免可能发生的不必要的麻烦请勿转载,谢谢 | = 欢迎批评指正,希望和所有

动态网页学习:JSP学习笔记全记录

js|笔记|动态|网页 JSP学习笔记(一)-----概述 JSP学习笔记(二)-----使用Tomcat运行JSP文件 JSP学习笔记(三)-----使用JSP处理用户注册和登陆 JSP学习笔记(四)-----JSP动作的使用 JSP学习笔记(五)-----JSP中使用JavaBean JSP学习笔记(六)-----在多个JSP页面之间传递参数 JSP学习笔记(七)-----猜数字游戏 JSP学习笔记(八)-----include的运用 JSP学习笔记(九)-----JSP标签库

java对象序列化学习笔记

java对象|笔记 目前网络上关于对象序列化的文章不少,但是我发现详细叙述用法和原理的文章太少.本人把自己经过经验总结和实际运用中的体会写成的学习笔记贡献给大家.希望能为整个java社区的繁荣做一点事情.    序列化的过程就是对象写入字节流和从字节流中读取对象.将对象状态转换成字节流之后,可以用java.io包中的各种字节流类将其保存到文件中,管道到另一线程中或通过网络连接将对象数据发送到另一主机.对象序列化功能非常简单.强大,在RMI.Socket.JMS.EJB都有应用.对象序列化问题在网

Java的“对象思想”学习笔记[二]

笔记|对象 在这篇文章里我将介绍一些Java对于对象的基本处理模式的问题. 首先看一个有关对象相等性(Object equivalence)的例子: 先看下面的代码: public class EqualTest1{ public static void main(String[] args){ Integer n1 = new Integer(20); Integer n2 = new Integer(20); System.out.println(n1 = = n2); System.out

数据库学习笔记(一)

笔记|数据|数据库 这是我学习数据库时候的笔记,都是非常简单,非常基础的有关数据库的知识,最近整理一下,希望大家不要蛋蛋我啊,呵呵 数据库学习笔记(一)                         --绪论及基本概念 一,             数据:描述事物的符号记录称为数据. 二,             数据库:指长期存储在计算机内的.有组织.可共享的数据集合. 三,             数据库管理系统:数据管理的软件,主要以下功能:                   1,