Php是世界上最好的语言 学习网站:https://www.w3school.com.cn/php/php_install.asp

简介

介绍

PHP 脚本在服务器上执行,然后向浏览器发送回纯 HTML 结果。
PHP 脚本可放置于文档中的任何位置。 PHP 脚本以 <?php 开头,以 ?> 结尾

大小写敏感

在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感。如下三条语句是等价的:

  1. <?php
  2. ECHO "Hello World!<br>";
  3. echo "Hello World!<br>";
  4. EcHo "Hello World!<br>";
  5. ?>

不过在 PHP 中,所有变量都对大小写敏感。如下只有第一条语义正确:

  1. <?php
  2. $color="red";
  3. echo "My car is " . $color . "<br>";
  4. echo "My house is " . $COLOR . "<br>";
  5. echo "My boat is " . $coLOR . "<br>";
  6. ?>

强弱类型比较

链接
掌握php弱类型比较

  1. php中其中两种比较符号:
  2. ==:先将字符串类型转化成相同,再比较
  3. ===:先判断两种字符串的类型是否相等,再比较
  4. 字符串和数字比较使用==时,字符串会先转换为数字类型再比较
  5. var_dump('a' == 0);//true,此时a字符串类型转化成数字,因为a字符串开头中没有找到数字,所以转换为0
  6. var_dump('a123' == 123);//false,因为php中有这样一个规定:字符串的开始部分决定了它的值,如果该字符串以合法的数字开始,则使用该数字至和它连续的最后一个数字结束,否则其比较时整体值为0。
  7. var_dump('123a' == 123);//true,这里'123a'会被转换为123
  8. var_dump('123a1' == 123);//true
  9. var_dump('1233a' == 123);//false

注:<、>、<=、>=都存在和==相同的弱类型,原理相同!!!

变量

变量的类型:String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。
PHP 有四种不同的变量作用域: local global static parameter
local不用说,parameter是指函数的参数,也没什么提的。

全局变量

在所有函数外部定义的变量,拥有全局作用域。
如果想在函数内使用全局变量,需要使用global关键词(跟Python一样):
image.png
PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。 上面的实例可以写成这样:
image.png

Static

static跟其他语言一样,可以防止局部变量使用后被删除,保留上一次使用的值。

EOF

PHP EOF(heredoc)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字符串的方法。(不太理解)
注意:
image.png

对象

image.png

常用函数

var_dump() 函数用于输出变量的相关信息。

image.png

echo

echo 和 print 区别:
echo - 可以输出一个或多个字符串
print - 只允许输出一个字符串,返回值总为 1

echo 是一个语言结构,使用的时候可以不用加括号,也可以加上括号: echo 或 echo()
image.pngimage.png

print

print只允许输出一个字符串,可以使用括号,也可以不使用括号: print 或 print()。
image.png

get_object_vars — 返回由对象属性组成的关联数组

简单来说,会输出对象中各个属性值,如果某一个属性没有赋值,则会返回null值。

  1. <?php
  2. class Point2D {
  3. var $x, $y;
  4. var $label;
  5. function Point2D($x, $y)
  6. {
  7. $this->x = $x;
  8. $this->y = $y;
  9. }
  10. function setLabel($label)
  11. {
  12. $this->label = $label;
  13. }
  14. function getPoint()
  15. {
  16. return array("x" => $this->x,
  17. "y" => $this->y,
  18. "label" => $this->label);
  19. }
  20. }
  21. // "$label" is declared but not defined
  22. $p1 = new Point2D(1.233, 3.445);
  23. print_r(get_object_vars($p1));
  24. $p1->setLabel("point #1");
  25. print_r(get_object_vars($p1));
  26. ?>

输出如下:

  1. Array
  2. (
  3. [x] => 1.233
  4. [y] => 3.445
  5. [label] =>
  6. )
  7. Array
  8. (
  9. [x] => 1.233
  10. [y] => 3.445
  11. [label] => point #1
  12. )

foreach

有两种语法:
foreach(array_expression as $value) statement<br />foreach(array_expression as $key => $value) statement
前者就是普通的遍历,后者则是在遍历过程中还获取了键值

  1. $arr = array("1"=>"111","2"=>"222","3"=>"333");
  2. foreach($arr as $key=>$value)
  3. {
  4. echo $key."=>".$value."\n";
  5. }
  6. 输出如下:
  7. 1=>111
  8. 2=>222
  9. 3=>333