1、整体结构:
-
<?php
//PHP 脚本以 <?php 开始,以 ?> 结束,扩展名.php
?>
-
注释://
or/**/
-
基本输出:print
echo
<?php
echo "hello world";
?>
2、变量
实例:
<?php
$x = 5;
$y = 6;
echo ($x+$y);
?>
- PHP 没有声明变量的命令 , 变量在第一次赋值给它的时候被创建,同py
PHP是一门弱类型语言
<?php
$x = 1;
$y = 1.25;
$z = "hello";
$m = true;
$arr = array("1" , "2" , "3");
$nptr = null;
var_dump($x);
echo "<br/>";
var_dump($y);
echo "<br/>";
var_dump($z);
echo "<br/>";
var_dump($arr);
echo "<br/>";
var_dump($nptr);
?>
PHP变量作用域
- (1)局部变量:只在函数内部作用的变量
- (2)全局变量:除函数外可以被脚本内任何其他位置访问
- (3)global:帮助在函数内访问全局变量
- (4)static:在程序执行期间使用占用某内存且地址不变,且在函数调用后仍保留变量值再次调用函数的时候仍使用该值
<?php
function A()
{
$y = 2;
static $x = 1;
$x++;
$y++;
echo "<br/> y , x=";
var_dump($y , $x);
}
A();
A();
A();
?>
3、输出
echo 和 print 区别:
- echo可以输出一个或多个字符串
- print只允许输出一个字符串,返回值总为 1
tips:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1
<?php
echo "<h2>PHP 很有趣!</h2>";
echo "我要学 PHP!<br>";
echo "这是一个", "字符串,", "使用了", "多个", "参数。";
$txt1="学习 PHP";
$txt2="haha";
$cars=array("Volvo","BMW","Toyota");
echo $txt1;
echo "<br>";
echo "? $txt2 ?";
echo "<br>";
echo "我车的品牌是 {$cars[0]} <br/>";
print_r($cars);
echo "<br/>";
var_dump($cars);
?>
tip:感兴趣可以了解一下EOP
<?php
echo <<<EOF
<h1>我的第一个标题</h1>
<p>我的第一个段落。</p>
EOF;
// 结束需要独立一行且前后不能空格
?>
类型:
- String(字符串)
- Integer(整型)
- Float(浮点型)
- Boolean(布尔型)
- Array(数组)
- Object(对象)
- NULL(空值)
- Resource(资源类型)
输出不过多介绍了,上面有很多例子,唯一需要注意的是对于数组print_r和var_dump输出格式的区别
4、PHP类型比较:
- 松散比较:使用两个等号
==
比较,只比较值,不比较类型。
- 严格比较:用三个等号
===
比较,除了比较值,也比较类型。
<?php
if(42 == "42") {
echo '1、值相等';
}
echo PHP_EOL; // 换行符
if(42 === "42") {
echo '2、类型相等';
} else {
echo '3、类型不相等';
}
?>
5、PHP常量
define("A", "this is A");
<?php
define("A", "this is A");
echo A;
?>
常量是全局的,不需要任何修饰就可以访问。
6、字符串
内置运算符.
用于把两个字符串值连接起来。
<?php
$x = "1";
$y = "2";
echo $x . "+" . $y . "=" . "?";
?>
strlen:字符串长度
<?php
$x = "1";
$y = "2";
$z = $x . "+" . $y . "=" . "?";
echo strlen($z);
?>
strpos():返回字符串在另一字符串中第一次出现的位置
<?php
$x = "1";
$y = "2";
$z = $x . "+" . $y . "=" . "?";
echo strpos($z , "2");
?>
trim():去除字符串首尾处的空白字符
substr():截取字符串
<?php
$A = "this is a test";
echo substr($A ,5,2);
?>
str_replace()替换所有匹配的字符串为指定字符串
<?php
$A = "is is a test";
echo str_replace("is" , "fuck" , $A);
?>
explode()
<?php
$string = "apple,banana,orange";
$array = explode(",", $string);
print_r($array);
?>
implode()
<?php
$array = array("apple", "banana", "orange");
$string = implode(", ", $array);
echo $string;
?>
strstr()
<?php
$email = "[email protected]";
$domain = strstr($email, '@');
echo $domain;
?>
tip:字符串第一个位置下标为0
7、运算符
符号 |
作用 |
符号 |
作用 |
+ |
加 |
- |
减 |
* |
乘 |
/ |
除 |
% |
模 |
- |
置负 |
~ |
取反 |
. |
合并 |
赋值运算符:
操作符 |
描述 |
示例 |
x = y |
左操作数被设置为右侧表达式的值 |
x = y |
x += y |
加 |
x += y |
x -= y |
减 |
x -= y |
x *= y |
乘 |
x *= y |
x /= y |
除 |
x /= y |
x %= y |
模(除法的余数) |
x %= y |
A .= b |
连接两个字符串 |
A .= b |
递增/递减运算符
运算符 |
名称 |
描述 |
++x |
预递增 |
x 加 1,然后返回 x |
x++ |
后递增 |
返回 x,然后 x 加 1 |
--x |
预递减 |
x 减 1,然后返回 x |
x-- |
后递减 |
返回 x,然后 x 减 1 |
比较运算符 |
|
|
运算符 |
名称 |
描述 |
示例 |
== |
等于 |
如果 x 等于 y,则返回 true |
5 == 8 |
=== |
绝对等于 |
如果 x 等于 y,且类型相同,则返回 true |
5 === "5" |
!= |
不等于 |
如果 x 不等于 y,则返回 true |
5 != 8 |
<> |
不等于 |
如果 x 不等于 y,则返回 true |
5 <> 8 |
!== |
不绝对等于 |
如果 x 不等于 y,或类型不相同,则返回 true |
5 !== "5" |
> |
大于 |
如果 x 大于 y,则返回 true |
5 > 8 |
< |
小于 |
如果 x 小于 y,则返回 true |
5 < 8 |
>= |
大于等于 |
如果 x 大于或等于 y,则返回 true |
5 >= 8 |
<= |
小于等于 |
如果 x 小于或等于 y,则返回 true |
5 <= 8 |
还有逻辑运算符,数组运算符等等,不多介绍了 |
|
|
|
三目运算符
(expr1) ? (expr2) : (expr3)
8、条件语句
与cpp相同,唯一区别是多条件判断的else if中间没有空格
eg:
<?php
$t=date("H");
if ($t<"10")
{
echo "Have a good morning!";
}
elseif ($t<"20")
{
echo "Have a good day!";
}
else
{
echo "Have a good night!";
}
?>
9、数组
array()用于声明数组
数值数组:key是正常的数字下标
关联数组:带有指定的键的数组,每个键关联一个值
多维数组:包含一个或多个数组的数组
<?php
$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
<?php
$arr = array("bob" => 11 , "alice" => 13 , "candy" => 10);
print_r($arr);
echo "<br/>";
echo $arr['bob'];
?>
<?php
$arr = array("asd" , "fgh" , array("123" , "456"));
var_dump($arr);
?>
- count:获取数组长度
count(arr)
;
- foreach:遍历数组,等同于c#中foreach
遍历数组
<?php
$x=array("Google","Runoob","Taobao");
foreach ($x as $value)
{
echo $value . PHP_EOL;
}
?>
遍历关联数组
<?php
$arr = array("11" => "hello" , "22" => "world");
foreach($arr as $it => $value){
echo $it . " " . $value . "<br/>";
}
?>
sort() - 对数组进行升序排列
rsort() - 对数组进行降序排列
asort() - 根据关联数组的值,对数组进行升序排列
ksort() - 根据关联数组的键,对数组进行升序排列
arsort() - 根据关联数组的值,对数组进行降序排列
krsort() - 根据关联数组的键,对数组进行降序排列
ksort
<?php
$age=array("2"=>"35","3"=>"37","1"=>"43");
ksort($age);
print_r($age);
?>
asort
<?php
$age=array("Peter"=>"35","Ben"=>"30","Joe"=>"43");
asort($age);
print_r($age);
?>
array_search():在数组中查询给定的value,并返回key值
array_pop() , array_push()
array_unique():删除数组中value重复的元素
array_sum():求和
array_merge():求多个数组并集
array_diff():求两个(或更多个)数组的差集,返回所有在第一个数组中,而不在其他数组中的值,只比较键值
array_intersect():求两个(或更多个)数组的交集,只比较键值
10、循环
-
while循环:等同于cpp中循环
-
for循环:等同意cpp中for循环
11、函数
与cpp类似
<?php
function functionName()
{
// 要执行的代码
}
?>
需要返回值和参数在对应位置直接加就行
<?php
function add($x,$y)
{
$total=$x+$y;
return $total;
}
echo "1 + 16 = " . add(1,16);
?>
12、魔术常量
PHP 向它运行的任何脚本提供了大量的预定义常量。
有八个魔术常量它们的值随着它们在代码中的位置改变而改变。
<?php
echo '这是第 " ' . __LINE__ . ' " 行';
?>
<?php
echo '该文件位于 " ' . __FILE__ . ' " ';
?>
<?php
function test() {
echo '函数名为:' . __FUNCTION__ ;
}
test();
?>
<?php
class test {
function _print() {
echo '类名为:' . __CLASS__ . "<br>";
echo '函数名为:' . __FUNCTION__ ;
}
}
$t = new test();
$t->_print();
?>
<?php
function test() {
echo '函数名为:' . __METHOD__ ;
}
test();
?>
<?php
namespace MyProject;
echo '命名空间为:"', __NAMESPACE__, '"'; // 输出 "MyProject"
?>