0

0

PHP学习笔记(整理完成)

php中文网

php中文网

发布时间:2016-06-21 08:59:18

|

1394人浏览过

|

来源于php中文网

原创

一、现在开始学习PHP

老猴要弄个网站,提供主机空间的以php+mysql的居多,比较价格也相对较低,所以正好可以学习php.
不过,后来,他又说不急,我也就没有正式开始.今天顺便玩玩,还行,不同于java是强类型语言,php是无类型语言,这一点和_javascript是相似的。

参考如下的示例代码(改编自php manual):

$bool = TRUE; // a boolean

$str = "foo"; // a string

$int = 12; // an integer

echo gettype($bool); // prints out "boolean"

echo "\n";

echo gettype($str); // prints out "string"

echo "\n";

$bool=12;

echo gettype($bool); // prints out "integer"

/*

这里,由于重新将数值12赋给了本来是boolean类型的变量bool,这样,变量bool的类型变成了integer,java那样的强类型语言,赋值只发生在同类型之间。

*/

?>

 

通义听悟
通义听悟

阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。

下载

二、PHP与众不同的continue

continue与众不同之处在于接受一个可选的数字参数来决定跳过几重循环到循环结尾。

#php_continue.php

/*

php中,continue 在循环结构用用来跳过本次循环中剩余的代码并开始执行下一次循环。

这一点和其他语言是一致的,

不过,另有妙处:continue 接受一个可选的数字参数来决定跳过几重循环到循环结尾。

*/

$i = 0;

$j = 0;

while ($i++

echo "Outer

\n";

while (1) {//level 2

echo " Middle

\n";

while (1) {//level 1

echo " Inner

\n";

continue 3;

}

echo "This never gets output.

\n";

}

echo "Neither does this.

\n";

$j++;

//after runs continue 3,it comes to the end of level 3

}

echo "\$j=$j";//output: $j=0

?>

三、PHP中的数组

#php_array.php

/*默认的方式下,phparraykey是非负整数,这种情形和多数语言如c,c++,java中的数组是一致的

*从这点看,java中的数组其实是php中数组的一种默认的方式;而phparray则还有javaMap类的特性:keyvalue

×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

{

    echo  $array[$i];

    echo "\n";

}

/*

output:

0

1

2

3

4

5

*/

 

/*use foreach to loop*/

echo "foreach to loop\n";

foreach($array as $temp){

    echo($temp);

    echo "\n";

}

//output as above

 

/* foreach example 1: value only */

 

$a = array (1, 2, 3, 17);

 

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.

*/

 

/* foreach example 2: value (with key printed for illustration) */

 

$a = array (1, 2, 3, 17);

 

$i = 0; /* for illustrative purposes only */

 

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);

 

echo $arr["foo"]; // bar

echo $arr[12];    // 1

?>

四、可变变量、字符串运算符和数组运算符:相异于其他语言的部分

 

#php的可变变量

/*可变变量就是变量名可以动态的设置和使用的变量。

一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。

因为普通变量的值是可变的,所以可变变量的变量名也是可变的。

*/

//可变变量适合在什么场合使用呢?

$a = "hello";//定义一个普通变量

$$a = "world";//定义一个可变变量

echo "$a\n";//output:hello

echo "${$a}\n";//使用可变变量

//echo "$hello\n";//outputworld

echo "$hello\n";

?>

 

#php的字符串运算符

//连接运算符(“.”)

$a="first";

$b=$a."==>second";//now $b is "first==>second"

echo "$b\n";

 

//连接赋值运算符(“.=”)

//the same to $a=$a."==>second"

$a.="==>second";//now &a is "first==>second"

echo "$a\n";

 

/*其实可以理解为就只有一种,即连接运算符

这里的点(".")连接运算符和java语言中的字符串连接符("+")是类似的。*/

?>

 

#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"

}

*/

 

$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"

}

*/

?>

 

五、NULL

PHPmanual关于NULL的描述:"

NULL

特殊的 NULL 值表示一个变量没有值。NULL 类型唯一可能的值就是 NULL

在下列情况下一个变量被认为是 NULL

  * 被赋值为 NULL

  * 尚未被赋值。

  * unset()

NULL 类型只有一个值,就是大小写敏感的关键字 NULL

"

 

好混乱啊,在javascript中还有关键字:var用来声明变量,php没有,美元符号($)后面跟个合法的字符串,一个php的变量就诞生了,如上所说,它尚未被赋值,应该被认为是:NULL。使用strlen()试图将其当作string,并算出它的长度,这样做,php引擎不认为是错用。

if(is_null($none))

    print "length=".strlen($none)."\n";//can output:length=0

else

    print "undefined variable\n";//can not come here

?>

//PHPmanual说明:(1is_null --  检测变量是否为 NULL

//2NULL 类型只有一个值,就是大小写敏感的关键字 NULL

 

$fo=null;

 

if(is_null($fo))

{//依据上述(2),并非大写的NULL,本不该执行此处的,实际上并非如此,why

    echo "\$fo=null is NULL\n";//output:$fo=null is NULL

}

$foo=NULL;

if (is_null($f)) {

    echo "\$f=NULL is also NULL";//out put:$f=NULL is also NULL

}

?>



PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Golang处理数据库错误教程合集
Golang处理数据库错误教程合集

本专题整合了Golang数据库错误处理方法、技巧、管理策略相关内容,阅读专题下面的文章了解更多详细内容。

2

2026.02.06

java多线程方法汇总
java多线程方法汇总

本专题整合了java多线程面试题、实现函数、执行并发相关内容,阅读专题下面的文章了解更多详细内容。

0

2026.02.06

1688阿里巴巴货源平台入口与批发采购指南
1688阿里巴巴货源平台入口与批发采购指南

本专题整理了1688阿里巴巴批发进货平台的最新入口地址与在线采购指南,帮助用户快速找到官方网站入口,了解如何进行批发采购、货源选择以及厂家直销等功能,提升采购效率与平台使用体验。

90

2026.02.06

快手网页版入口与电脑端使用指南 快手官方短视频观看入口
快手网页版入口与电脑端使用指南 快手官方短视频观看入口

本专题汇总了快手网页版的最新入口地址和电脑版使用方法,详细提供快手官网直接访问链接、网页端操作教程,以及如何无需下载安装直接观看短视频的方式,帮助用户轻松浏览和观看快手短视频内容。

15

2026.02.06

C# 多线程与异步编程
C# 多线程与异步编程

本专题深入讲解 C# 中多线程与异步编程的核心概念与实战技巧,包括线程池管理、Task 类的使用、async/await 异步编程模式、并发控制与线程同步、死锁与竞态条件的解决方案。通过实际项目,帮助开发者掌握 如何在 C# 中构建高并发、低延迟的异步系统,提升应用性能和响应速度。

10

2026.02.06

Python 微服务架构与 FastAPI 框架
Python 微服务架构与 FastAPI 框架

本专题系统讲解 Python 微服务架构设计与 FastAPI 框架应用,涵盖 FastAPI 的快速开发、路由与依赖注入、数据模型验证、API 文档自动生成、OAuth2 与 JWT 身份验证、异步支持、部署与扩展等。通过实际案例,帮助学习者掌握 使用 FastAPI 构建高效、可扩展的微服务应用,提高服务响应速度与系统可维护性。

6

2026.02.06

JavaScript 异步编程与事件驱动架构
JavaScript 异步编程与事件驱动架构

本专题深入讲解 JavaScript 异步编程与事件驱动架构,涵盖 Promise、async/await、事件循环机制、回调函数、任务队列与微任务队列、以及如何设计高效的异步应用架构。通过多个实际示例,帮助开发者掌握 如何处理复杂异步操作,并利用事件驱动设计模式构建高效、响应式应用。

7

2026.02.06

java连接字符串方法汇总
java连接字符串方法汇总

本专题整合了java连接字符串教程合集,阅读专题下面的文章了解更多详细操作。

25

2026.02.05

java中fail含义
java中fail含义

本专题整合了java中fail的含义、作用相关内容,阅读专题下面的文章了解更多详细内容。

28

2026.02.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
AngularJS教程
AngularJS教程

共24课时 | 3.4万人学习

CSS3实现按钮特效视频教程
CSS3实现按钮特效视频教程

共15课时 | 3.3万人学习

细说PHP第三季
细说PHP第三季

共58课时 | 11.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号