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 编程请选择正确的文本编辑软件
Dec 21 PHP
php+AJAX传送中文会导致乱码的问题的解决方法
Sep 08 PHP
php面向对象的方法重载两种版本比较
Sep 08 PHP
PHP实现手机归属地查询API接口实现代码
Aug 27 PHP
利用php递归实现无限分类 格式化数组的详解
Jun 08 PHP
php 不使用js实现页面跳转
Feb 11 PHP
PHP 生成N个不重复的随机数
Jan 21 PHP
php实现求相对时间函数
Jun 15 PHP
WIFI万能钥匙密码查询接口实例
Sep 28 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
Nov 09 PHP
php 函数使用可变数量的参数方法
May 02 PHP
PHP getDocNamespaces()函数讲解
Feb 03 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
广播爱好者需要了解的天线知识
2021/03/01 无线电
php中经典方法实现判断多维数组是否为空
2011/10/23 PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
2016/11/17 PHP
Bookmarklet实现启动jQuery(模仿 云输入法)
2010/09/15 Javascript
JavaScript 对象模型 执行模型
2010/10/15 Javascript
关于JS控制代码暂停的实现方法分享
2012/10/11 Javascript
javascript之典型高阶函数应用介绍二
2013/01/10 Javascript
如何使用Javascript正则表达式来格式化XML内容
2013/07/04 Javascript
详解JavaScript基于面向对象之创建对象(1)
2015/12/10 Javascript
Angular CLI 安装和使用教程
2017/09/13 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
vue.js项目中实用的小技巧汇总
2017/11/29 Javascript
Nodejs中crypto模块的安全知识讲解
2018/01/03 NodeJs
jquery登录的异步验证操作示例
2019/05/09 jQuery
axios实现简单文件上传功能
2019/09/25 Javascript
vue监听用户输入和点击功能
2019/09/27 Javascript
JS数组方法concat()用法实例分析
2020/01/18 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
2020/11/16 Javascript
[01:27:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第一场 1月24日
2021/03/11 DOTA
[41:21]夜魇凡尔赛茶话会 第三期02:看图识人
2021/03/11 DOTA
python中list列表的高级函数
2016/05/17 Python
Python更新数据库脚本两种方法及对比介绍
2017/07/27 Python
Window 64位下python3.6.2环境搭建图文教程
2018/09/19 Python
Python 控制终端输出文字的实例
2019/07/12 Python
FFrpc python客户端lib使用解析
2019/08/24 Python
利用python实现周期财务统计可视化
2019/08/25 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
澳洲国民品牌乡村路折扣店:Country Road & Trenery Outlet
2018/04/19 全球购物
蛋糕店的商业计划书范文
2014/01/27 职场文书
大学生精神文明先进个人事迹材料
2014/05/02 职场文书
党员个人整改方案及措施
2014/10/25 职场文书
2015年社区矫正工作总结
2015/04/21 职场文书
如何用JavaScript学习算法复杂度
2021/04/30 Javascript
elasticSearch-api的具体操作步骤讲解
2021/06/28 Java/Android
Python实现滑雪小游戏
2021/09/25 Python