PHP入门学习笔记之一


Posted in PHP onOctober 12, 2010

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 Socket 编程
Apr 09 PHP
php快速url重写更新版[需php 5.30以上]
Apr 25 PHP
php去除字符串换行符示例分享
Feb 13 PHP
php动态函数调用方法
May 21 PHP
php批量删除超链接的实现方法
Oct 19 PHP
使用Huagepage和PGO来提升PHP7的执行性能
Nov 30 PHP
我整理的PHP 7.0主要新特性
Jan 07 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
Jan 09 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
Dec 24 PHP
PDO::lastInsertId讲解
Jan 29 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
Dec 18 PHP
数据结构之利用PHP实现二分搜索树
Oct 25 PHP
PHP 显示客户端IP与服务器IP的代码
Oct 12 #PHP
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
Oct 12 #PHP
使用PHP 5.0创建图形的巧妙方法
Oct 12 #PHP
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
Oct 12 #PHP
献给php初学者(入门学习经验谈)
Oct 12 #PHP
发款php蜘蛛统计插件只要有mysql就可用
Oct 12 #PHP
php更改目录及子目录下所有的文件后缀扩展名的代码
Oct 12 #PHP
You might like
CodeIgniter生成网站sitemap地图的方法
2013/11/13 PHP
纯PHP生成的一个树叶图片画图例子
2014/04/16 PHP
游戏人文件夹程序 ver 3.0
2006/07/14 Javascript
js滚动条多种样式,推荐
2007/02/05 Javascript
IE与FireFox的兼容性问题分析
2007/04/22 Javascript
JavaScript 设计模式 安全沙箱模式
2010/09/24 Javascript
基于jQuery实现下拉收缩(展开与折叠)特效
2012/12/25 Javascript
jQuery中:focus选择器用法实例
2014/12/30 Javascript
JavaScript变量的作用域全解析
2015/08/14 Javascript
jQuery仿淘宝网产品品牌隐藏与显示效果
2015/09/01 Javascript
js实现跨域访问的三种方法
2015/12/09 Javascript
angular.js实现购物车功能
2017/10/23 Javascript
微信小程序项目实践之验证码倒计时功能
2018/07/18 Javascript
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
[02:21]DOTA2英雄基础教程 蝙蝠骑士
2013/12/16 DOTA
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
Python实现简易Web爬虫详解
2018/01/03 Python
pandas将DataFrame的列变成行索引的方法
2018/04/10 Python
python调用百度语音识别实现大音频文件语音识别功能
2018/08/30 Python
pytorch加载自定义网络权重的实现
2020/01/07 Python
Python面向对象魔法方法和单例模块代码实例
2020/03/25 Python
python数据库编程 ODBC方式实现通讯录
2020/03/27 Python
django 实现简单的插入视频
2020/04/07 Python
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
打造经典复古风格的品牌:Alice + Olivia(爱丽丝+奥利维亚)
2016/09/07 全球购物
函授教育个人学习的自我评价
2013/12/31 职场文书
财务出纳岗位职责
2014/02/03 职场文书
公益广告宣传方案
2014/02/28 职场文书
法律七进实施方案
2014/03/15 职场文书
图书馆标语
2014/06/19 职场文书
会计学专业自荐信
2014/06/25 职场文书
英语三分钟演讲稿
2014/08/19 职场文书
工地例会施工汇报材料
2014/08/22 职场文书
见习期个人总结
2015/03/05 职场文书
2015年市场营销工作总结
2015/07/23 职场文书
初三英语教学反思
2016/02/15 职场文书