PHP学习笔记
一、现在开始学习PHP
老猴要弄个网站,提供主机空间的以php+mysql的居多,比较价格也相对较低,所以正好可以学习php.
不过,后来,他又说不急,我也就没有正式开始.今天顺便玩玩,还行,不同于java是强类型语言,php是无类型语言,这一点和_javascript是相似的。
参考如下的示例代码(改编自php manual):
$bool = TRUE; //a boolean
$str ="foo"; // a string
$int = 12; // aninteger
echogettype($bool); // prints out "boolean"
echo"\n";
echogettype($str); // prints out "string"
echo"\n";
$bool=12;
echogettype($bool); // prints out "integer"
/*
这里,由于重新将数值12赋给了本来是boolean类型的变量bool,这样,变量bool的类型变成了integer,像java那样的强类型语言,赋值只发生在同类型之间。
*/
?>
<!----> <!----><o:p></o:p>
二、PHP与众不同的continue
continue与众不同之处在于接受一个可选的数字参数来决定跳过几重循环到循环结尾。
#php_continue.php
/*
在php中,continue 在循环结构用用来跳过本次循环中剩余的代码并开始执行下一次循环。
这一点和其他语言是一致的,
不过,另有妙处:continue 接受一个可选的数字参数来决定跳过几重循环到循环结尾。
*/
$i = 0;
$j = 0;
while ($i++ <3) {//level 3
echo "Outer
\n";
while (1){//level 2
echo "Middle
\n";
while (1){//level 1
echo "Inner
\n";
continue 3;
}
echo "Thisnever gets output.
\n";
}
echo"Neither does this.
\n";
$j++;
//after runscontinue 3,it comes to the end of level 3
}
echo"\$j=$j";//output: $j=0
?>
三、PHP中的数组
#php_array.php
/*默认的方式下,php的array的key是非负整数,这种情形和多数语言如c,c++,java中的数组是一致的
*从这点看,java中的数组其实是php中数组的一种默认的方式;而php的array则还有java中Map类的特性:key-value
×php manual中的说法“PHP 中的数组实际上是一个有序图。图是一种把 values 映射到 keys 的类型”
*/
$array=array("0","1","2","3","4","5");
print_r($array);
/*
output:
Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
)
*/
//用 count() 函数来数出数组中元素的个数
for($i=0,$size=count($array);$i<$size;$i++)
{
echo $array[$i];
echo "\n";
}
/*
output:
0
1
2
3
4
5
*/
<!----> <!----><o:p></o:p>
/*use foreach toloop*/
echo"foreach to loop\n";
foreach($arrayas $temp){
echo($temp);
echo "\n";
}
//output asabove
<!----> <!----><o:p></o:p>
/* foreachexample 1: value only */
<!----> <!----><o:p></o:p>
$a = array (1,2, 3, 17);
<!----> <!----><o:p></o:p>
foreach ($a as$v) {
print "Current value of \$a:$v.\n";//这里使用了转义字符\,使得$a作为一个字串输出
}
/*
output:
Current value of$a: 1.
Current value of$a: 2.
Current value of$a: 3.
Current value of$a: 17.
*/
<!----> <!----><o:p></o:p>
/* foreachexample 2: value (with key printed for illustration) */
<!----> <!----><o:p></o:p>
$a = array (1,2, 3, 17);
<!----> <!----><o:p></o:p>
$i = 0; /* forillustrative purposes only */
<!----> <!----><o:p></o:p>
foreach ($a as$v) {
print "\$a[$i] => $v.\n";
$i++;
}
$array2=array("a"=>"avalue","b"=>"bvalue","c"=>"b");
print_r($array2);
echo"****\n";
echo$array2[$array2["c"]];//
//echo$array2[$array2[2]];//企图像java那样使用数组下标方式,是无效的
echo "\n***\n";
/*output:
****
bvalue
***
*/
$arr =array("foo" => "bar", 12 => true);
<!----> <!----><o:p></o:p>
echo$arr["foo"]; // bar
echo$arr[12]; // 1
?>
四、可变变量、字符串运算符和数组运算符:相异于其他语言的部分
#php的可变变量
/*可变变量就是变量名可以动态的设置和使用的变量。
一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。
因为普通变量的值是可变的,所以可变变量的变量名也是可变的。
*/
//可变变量适合在什么场合使用呢?
$a ="hello";//定义一个普通变量
$$a ="world";//定义一个可变变量
echo"$a\n";//output:hello
echo"${$a}\n";//使用可变变量
//同echo "$hello\n";//output:world
echo"$hello\n";
?>
<!----> <!----><o:p></o:p>
#php的字符串运算符
//连接运算符(“.”)
$a="first";
$b=$a."==>second";//now$b is "first==>second"
echo"$b\n";
<!----> <!----><o:p></o:p>
//连接赋值运算符(“.=”)
//the same to$a=$a."==>second"
$a.="==>second";//now&a is "first==>second"
echo"$a\n";
<!----> <!----><o:p></o:p>
/*其实可以理解为就只有一种,即连接运算符
这里的点(".")连接运算符和java语言中的字符串连接符("+")是类似的。*/
?>
<!----> <!----><o:p></o:p>
#php的数组运算符:+
/* PHP 仅有的一个数组运算符是 + 运算符。
它把右边的数组附加到左边的数组后,但是重复的键值不会被覆盖。
亦即,以左边的数组为主导,若附加其上的(右边的)数组中有与其key重复的部分将被忽略
*/
$a =array("a" => "apple", "b" =>"banana");
$b =array("a" =>"pear", "b" =>"strawberry", "c" => "cherry");
$a1=array("c"=>"a1_cherry","d"=>"a1=d");
$c = $a + $b;
var_dump($c);
/*output:
array(3) {
["a"]=>
string(5) "apple"
["b"]=>
string(6) "banana"
["c"]=>
string(6) "cherry"
}
*/
<!----> <!----><o:p></o:p>
$d = $a +$b+$a1;
var_dump($d);
/*output:
array(4) {
["a"]=>
string(5) "apple"
["b"]=>
string(6) "banana"
["c"]=>
string(6) "cherry"
["d"]=>
string(4) "a1=d"
}
*/
?>
<!----> <!----><o:p></o:p>
五、NULL
PHPmanual关于NULL的描述:"
NULL
特殊的 NULL 值表示一个变量没有值。NULL类型唯一可能的值就是NULL。
在下列情况下一个变量被认为是 NULL:
* 被赋值为 NULL。
* 尚未被赋值。
* 被 unset()。
NULL 类型只有一个值,就是大小写敏感的关键字 NULL。
"
<!----> <!----><o:p></o:p>
好混乱啊,在javascript中还有关键字:var用来声明变量,php没有,美元符号($)后面跟个合法的字符串,一个php的变量就诞生了,如上所说,它尚未被赋值,应该被认为是:NULL。使用strlen()试图将其当作string,并算出它的长度,这样做,php引擎不认为是错用。
if(is_null($none))
print"length=".strlen($none)."\n";//can output:length=0
else
print "undefinedvariable\n";//can not come here
?>
//PHPmanual说明:(1)is_null -- 检测变量是否为 NULL
//(2)NULL 类型只有一个值,就是大小写敏感的关键字 NULL
<!----> <!----><o:p></o:p>
$fo=null;
<!----> <!----><o:p></o:p>
if(is_null($fo))
{//依据上述(2),并非大写的NULL,本不该执行此处的,实际上并非如此,why?
echo "\$fo=null isNULL\n";//output:$fo=null is NULL
}
$foo=NULL;
if (is_null($f)){
echo "\$f=NULL is alsoNULL";//out put:$f=NULL is also NULL
}
?>
分享到:
相关推荐
### Java学习笔记整理 #### 1. Java简介 ##### 1.1 计算机编程和开发语言 计算机系统由硬件系统和软件系统组成。软件系统又进一步细分为系统软件和应用软件。其中,系统软件包括操作系统、编译系统、数据库系统等...
### Xoops 开发学习笔记 #### 一、Xoops基础知识介绍 Xoops是一个开源的内容管理系统(CMS),适用于构建各种类型的网站,包括社区门户、新闻站点等。它采用PHP语言编写,并且依赖MySQL数据库来存储数据。Xoops...
本文整理了一份Linux shell学习笔记及基本命令合集,包含了LINUX常用操作命令和命令行编辑快捷键、shell基本命令,Linux相关使用配置教程等,需要的朋友可下载试试! shell是一个用C语言编写的程序,它是用户使用...
本篇R语言学习笔记主要涵盖以下几个方面: 1. **R语言基础**: R是一种脚本语言,其核心特性包括向量、列表、数组和函数等对象,这些对象可以通过查询和引用方便地操作。R语言具有灵活的数据结构,支持条件筛选和...
### Git 最全笔记整理——Git 入门必备 #### 一、Git 是什么? Git 是一种分布式版本控制系统,主要用于跟踪计算机文件的更改,并协调多个用户之间的协作。它最初由 Linus Torvalds 在 2005 年为了更好地管理 ...
在2015年6月11日PHP官方发布了PHP7的第一个alpha版本,PHP7.0。这个版本带来了许多重大更新和改进。下面的内容将详细介绍PHP7的特性...对于有志于开发高性能Web应用的开发者来说,PHP7是一个值得学习和掌握的新工具。
本文详细介绍了在Windows环境下...以上就是根据文件内容整理的关于在IIS7下安装配置PHP环境的知识点。需要注意的是,本文档是由OCR扫描技术生成,因此可能存在个别文字识别错误或遗漏,阅读时应充分理解并做适当调整。
【个人Linux整理笔记:高级服务篇】 Linux操作系统在IT领域有着广泛的应用,尤其在服务器管理、网络服务和软件开发等方面。对于Linux的学习,尤其是高级服务部分,是提升系统管理技能的关键。本文将深入探讨Linux中...
### 韩顺平十天JavaScript全套笔记知识点详解 #### JavaScript基本概念与应用领域 - **JavaScript简介**:JavaScript(简称JS)是一种轻量级、解释型或即时编译型的编程语言。它通常用于增强网页的交互性,并且...
同时,利用【PPT】进行辅助学习,将关键知识点整理成笔记,便于日后查阅和复习。 此外,为了深入学习PHP,还需要了解和掌握相关技术,如HTML、CSS用于前端展示,JavaScript进行交互,以及常见的服务器端技术如...
以上是MySQL基础的概览,传智播客的PHP培训课程中的"韩忠康PHP视频教程Mysql PPT.pptx"和"韩忠康第二版mysql视频教程笔记"将更深入地讲解这些概念,并可能包含实战示例和案例研究,以帮助学习者更好地理解和应用...
整理了一份Linux shell学习笔记及基本命令合集,包含了LINUX常用操作命令和命令行编辑快捷键、shell基本命令,Linux相关使用配置教程等,需要的朋友可下载试试! shell是一个用C语言编写的程序,它是用户使用Linux的...
- **个人知识管理**:个人也可以用它来整理自己的学习笔记、灵感和想法。 安装和运行knowledgeroot通常涉及以下步骤: 1. **环境准备**:确保服务器已安装PHP、MySQL数据库以及Apache或Nginx等Web服务器。 2. **...
### JavaSE第一天笔记知识点概述 #### 一、软件开发概览 **1.1 什么是软件** ...- 课后整理笔记并做练习。 - 整理错误文档(异常文档),总结经验教训。 - 将所学技术向他人解释清楚,确保自己真正理解。
为了帮助大家更好地完成毕业设计,我们特地整理了一系列Java毕业设计项目参考资源,包括源代码、MD文档、笔记等等,希望能对您的学习与研究提供有力支持。 项目源代码:涵盖了多个Java毕业设计项目的完整代码,包括...
- **Zip文件处理**:在文档或代码中可能涉及对.zip格式文件的处理,如将其内容粘贴至Word文档等,这主要是为了方便学习者整理和查阅资料。 - **回顾现有Java基础知识**:包括面向对象编程、集合框架、图形用户界面、...
【个人笔记管理系统】是一个基于Web的个人学习资料管理平台,主要...其采用的Bootstrap响应式设计和PHP+MySQL的后端架构,既保证了良好的用户体验,又实现了数据的高效管理,是个人或小型团队整理学习资料的理想选择。
教学时学生可做笔记,加深对知识的印象,并可对笔记进行整理。 作业管理模块中,教师可以在平台布置作业,设置作业最迟上传时间,学生将接收到作业提示。学生完成作业进行上传,教师在线批改。 考试管理模块中,...
在数字化的学习和工作中,OneNote作为一款强大的笔记工具,被广泛应用于记录、整理和分享各类信息。然而,对于编程人员来说,如何在OneNote中优雅地展示代码,使其具有良好的可读性和视觉效果,一直是一个挑战。为了...