PHP 第二天
今天学习了PHP的一些语法基础:
数据类型、标识符、变量、常量、表达式、字符串、控制结构、函数、数组
感觉PHP怎么那么像C呢?整个一面向过程的编程语言,全是函数嘛!说是PHP从4.0添加了面向对象的支持,真的很想看看一个面向过程的编程语言是怎么支持成面向对象的语言的。那是明天的任务了,还是先总结一下今天学的东西吧。
同是脚本语言,拿Ruby和PHP比较一下,Ruby是完全的面向对象的语言,一切都是从对象开始,而PHP是面向过程的(暂时的,我还没看到面向对象呢 )。但是它们都拥有脚本语言的一些优点,让人写起代码来感觉特别爽(不用强制类型,变量用起来简单,且对函数,数组,字符串的处理都很灵活)。
罗列一下PHP语言的一些神奇之处:
输出 :
echo(表达式,而非函数,标准输出)
print printf(格式输出、标准输出)
sprintf(格式输出、非标准输出)
print_r(以一种很强的格式输出对象、数组,很好很强大)。
与类型相关的函数:
settype(mixed var ,string type),type7个可能的取值:array、boolean、float、integer、null、object、string
gettype(mixed var),可能有8个返回值:array、boolean、float、integer、null、object、unknow、string
is_name(mixed var)用来判断是否为某一类型的变量。
赋值:
引用赋值:
<?php
$value1 = "helllo";
$value2 =& $value1; //引用赋值,
$value2 = "Goodbye";//value1的值也是"Goodbye"
?>
变量的四种作用域:
局部变量、函数参数、全局变量、静态变量
变量的变量:变量名是一个变量。
循环:
for(array_expr as $value){
statement
}
for(array_expr as $key => $value){
statement
}
文件包含语句:
include()、include_once() 可以选择执行,可以用IF/ELSE控制是否执行,如果包含出错,不会停止脚本
require()、require_once()只要包含就会执行,如果包含出错,会停止脚本
函数:
默认参数、可选参数
<?php
//默认参数值
function salestax($price,$tax=0.0579){
$total = $price + ($price * $tax);
echo "Total cost :$total";
}
salestax(18.7);
//可选参数
function salestax($price,$tax=""){
$total = $price + ($price * $tax);
echo "Total cost :$total";
}
salestax(18.7);
?>
返回值(返回多个值)
<?php
function retrieve_user_profile(){
$user[] = "jason";
$user[] = "[email protected]";
$user[] = "English";
}
list($name,$email,$language) = retrive_user_profile();
?>
list 可以将数组分别赋值给变量
嵌套函数
<?php
//函数嵌套
function salestax($price,$tax){
function convert_pound($dollars,$conversion=1.6){
return $doallars * $conversion;
}
$total = $price + ($price * s$tax);
}
//可以直接调用
convert_pound(15);
?>
注意:PHP不限制嵌套函数的作用域。
变量函数:指函数名也要在调用之前计算
数组:
PHP的数组跟Ruby中的HASH很类似,不用定义数组的长度,可以动态添加,每个数组的元素可是一个键/值对,且对数组元素的类型没有限制。
产生的一些疑问:
- 对PHP的代码组织方式、代码管理工具?( 这点Ruby就做的比较好:gem)。
- apache和PHP是如何联系起来的,WEB服务器的请求是如何转交给特定的PHP脚本的,PHP又是如何将生成的东东返回给WEB服务器的?PHP是如何实现CGI的?越想越郁闷。
上一篇: 简易五子棋
下一篇: Java 流输出文件中文乱码问题