PHP学习笔记之一


Posted in PHP onJanuary 17, 2011

配置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。

PHP 相关文章推荐
用php过滤危险html代码的函数
Jul 22 PHP
php面向对象全攻略 (九)访问类型
Sep 30 PHP
php开发文档 会员收费1期
Aug 14 PHP
深入理解PHP几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表
Jun 06 PHP
PHP实现变色验证码实例
Jan 06 PHP
php cookie名使用点号(句号)会被转换
Oct 23 PHP
php判断两个浮点数是否相等的方法
Mar 14 PHP
php计算税后工资的方法
Jul 28 PHP
PHP使用fopen与file_get_contents读取文件实例分享
Mar 04 PHP
Yii2下点击验证码的切换实例代码
Mar 14 PHP
PHP程序员学习使用Swoole的理由
Jun 24 PHP
PHP队列场景以及实现代码实例详解
Feb 26 PHP
php下连接mssql2005的代码
Jan 17 #PHP
Php Image Resize图片大小调整的函数代码
Jan 17 #PHP
php生成随机密码的几种方法
Jan 17 #PHP
PHP校验ISBN码的函数代码
Jan 17 #PHP
PHP中用正则表达式清除字符串的空白
Jan 17 #PHP
php开发环境配置记录
Jan 14 #PHP
PHP文件读写操作之文件写入代码
Jan 13 #PHP
You might like
php模拟实现斗地主发牌
2020/04/22 PHP
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
2010/12/03 Javascript
用jQuery模拟页面加载进度条的实现代码
2011/12/19 Javascript
js中substr,substring,indexOf,lastIndexOf的用法小结
2013/12/27 Javascript
使用JQ来编写最基本的淡入淡出效果附演示动画
2014/10/31 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
JavaScript实现页面跳转的方式汇总
2016/05/16 Javascript
javascript中sort排序实例详解
2016/07/24 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
2016/09/19 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
jQuery实现的手风琴侧边菜单效果
2017/03/29 jQuery
Node.js 使用AngularJS的方法示例
2018/05/11 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
2019/06/10 jQuery
使用eslint和githooks统一前端风格的技巧
2020/07/29 Javascript
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
举例详解Python中threading模块的几个常用方法
2015/06/18 Python
pytorch 自定义数据集加载方法
2019/08/18 Python
python读取图片的几种方式及图像宽和高的存储顺序
2020/02/11 Python
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
英国百安居装饰建材网上超市:B&Q
2016/09/13 全球购物
一份全面的PHP面试问题考卷
2012/07/15 面试题
报关员个人职业生涯规划书
2014/03/12 职场文书
关于责任的演讲稿
2014/05/20 职场文书
省级优秀毕业生主要事迹
2014/05/29 职场文书
优秀班主任经验交流材料
2014/06/02 职场文书
建筑结构施工求职信
2014/07/11 职场文书
工程承包协议书
2014/10/20 职场文书
幼儿园安全教育月活动总结
2015/05/08 职场文书
2015年政府采购工作总结
2015/05/21 职场文书
2016应届大学生自荐信模板
2016/01/28 职场文书
导游词之山海关
2019/12/10 职场文书
浅谈Python numpy创建空数组的问题
2021/05/25 Python