Php是世界上最好的语言 学习网站:https://www.w3school.com.cn/php/php_install.asp
简介
介绍
PHP 脚本在服务器上执行,然后向浏览器发送回纯 HTML 结果。
PHP 脚本可放置于文档中的任何位置。 PHP 脚本以 <?php 开头,以 ?> 结尾。
大小写敏感
在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感。如下三条语句是等价的:
<?php
ECHO "Hello World!<br>";
echo "Hello World!<br>";
EcHo "Hello World!<br>";
?>
不过在 PHP 中,所有变量都对大小写敏感。如下只有第一条语义正确:
<?php
$color="red";
echo "My car is " . $color . "<br>";
echo "My house is " . $COLOR . "<br>";
echo "My boat is " . $coLOR . "<br>";
?>
强弱类型比较
链接
掌握php弱类型比较
php中其中两种比较符号:
==:先将字符串类型转化成相同,再比较
===:先判断两种字符串的类型是否相等,再比较
字符串和数字比较使用==时,字符串会先转换为数字类型再比较
var_dump('a' == 0);//true,此时a字符串类型转化成数字,因为a字符串开头中没有找到数字,所以转换为0
var_dump('a123' == 123);//false,因为php中有这样一个规定:字符串的开始部分决定了它的值,如果该字符串以合法的数字开始,则使用该数字至和它连续的最后一个数字结束,否则其比较时整体值为0。
var_dump('123a' == 123);//true,这里'123a'会被转换为123
var_dump('123a1' == 123);//true
var_dump('1233a' == 123);//false
注:<、>、<=、>=都存在和==相同的弱类型,原理相同!!!
变量
变量的类型:String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。
PHP 有四种不同的变量作用域: local global static parameter
local不用说,parameter是指函数的参数,也没什么提的。
全局变量
在所有函数外部定义的变量,拥有全局作用域。
如果想在函数内使用全局变量,需要使用global关键词(跟Python一样):
PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。 上面的实例可以写成这样:
Static
static跟其他语言一样,可以防止局部变量使用后被删除,保留上一次使用的值。
EOF
PHP EOF(heredoc)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字符串的方法。(不太理解)
注意:
对象
常用函数
var_dump() 函数用于输出变量的相关信息。
echo
echo 和 print 区别:
echo - 可以输出一个或多个字符串
print - 只允许输出一个字符串,返回值总为 1
echo 是一个语言结构,使用的时候可以不用加括号,也可以加上括号: echo 或 echo()。
print只允许输出一个字符串,可以使用括号,也可以不使用括号: print 或 print()。
get_object_vars — 返回由对象属性组成的关联数组
简单来说,会输出对象中各个属性值,如果某一个属性没有赋值,则会返回null值。
<?php
class Point2D {
var $x, $y;
var $label;
function Point2D($x, $y)
{
$this->x = $x;
$this->y = $y;
}
function setLabel($label)
{
$this->label = $label;
}
function getPoint()
{
return array("x" => $this->x,
"y" => $this->y,
"label" => $this->label);
}
}
// "$label" is declared but not defined
$p1 = new Point2D(1.233, 3.445);
print_r(get_object_vars($p1));
$p1->setLabel("point #1");
print_r(get_object_vars($p1));
?>
输出如下:
Array
(
[x] => 1.233
[y] => 3.445
[label] =>
)
Array
(
[x] => 1.233
[y] => 3.445
[label] => point #1
)
foreach
有两种语法:foreach(array_expression as $value) statement<br />foreach(array_expression as $key => $value) statement
前者就是普通的遍历,后者则是在遍历过程中还获取了键值。
$arr = array("1"=>"111","2"=>"222","3"=>"333");
foreach($arr as $key=>$value)
{
echo $key."=>".$value."\n";
}
输出如下:
1=>111
2=>222
3=>333