PHP基本语法

PHP基本语法

基础
<?php  ?>

为php区域

语句要用;结尾



输出语句:
<?
//输出语句
echo "hello ","world "; //可输出多个字符串,逗号隔开
print "world "; //输出单个字符串
var_dump("hello");//打印数据类型和值
?>
输出hello world world string(5) "hello"



换行:
<?php
//换行
echo "hello\n";
echo "world<br/>";
echo "ccy<hr/>";
echo "xhz";
?>
\n在网页源码中换行,在网页显示中打出个空格(maybe),不换行
<br/>在网页源码中显示本身,不换行,在网页显示中换行。
<hr/>则是在网页显示中加一条分割线

网页:

网页源码:



变量,引号:

命名规则与c一样。

不必向 PHP 声明该变量的数据类型,因此一定要赋初值,让PHP 根据变量的值,自动把变量转换为正确的数据类型。

<?php
$ccy = "www";//
echo '$ccy';//单引号会输出原字符串
echo "$ccy";//双引号会解析变量并输出
?>

输出:



数据类型:(base)
<?php
$a = 1;
$b = 2.2;
$c = "hello";
$d = true;

var_dump($a);echo '<br/>';
var_dump($b);echo '<br/>';
var_dump($c);echo '<br/>';
var_dump($d);echo '<br/>';
?>




数组:
<?php
//两种声明方式,如果括号不输入值则为空数组
$a = array(1,2,3);
$b = ["hh"=>'a','b',3=>'c',"d"];//3写成‘3’或"3"一样结果
var_dump($a);echo '<hr/>';
var_dump($b);echo '<hr/>';
?>

1、索引可以自己命名

2、索引从0开始,自己命名后会改变顺序



循环:

for和while与c99版本类似(maybe一样)

<?php
for($i=0;$i<10;$i++){//输出0123456789
    echo $i;
}
$i=0;
while($i<5){//输出01234
    echo $i++;
}
$i=0;
do{//输出01234
    echo $i++;
}while($i<5)
?>

foreach:foreach只能用在数组中

<?php
$arr = [1,2,3,4];
$str = ["a"=>'aa',"b"=>'bb',"c"=>'cc'];
foreach ($arr as $value){//as 后面自己取的名字
    echo $value;
}
echo "<br/>";
foreach ($str as $value){//缺少下标对应时,as 后面的是值,而不是下标
    echo "$value";
}
echo "<br/>";
foreach ($str as $index=>$value){
    echo "$index=>$value<br/>";
}
?>



条件语句:

if,else if,else;switch,case 与c类似(maybe一样)

php8新特性:match,与c中switch类似(这回是真的只是类似)

1、match有返回值

2、match每个分支只有一条语句

3、match是精确比较,switch是模糊比较(解释在运算符中)

<?php
$i = 1;
$result = match($i){
    0 => "yes",//用,隔开
    1,2 => "no",//多个条件匹配
    default=>"null",
};//末尾加分号
echo $result;//输出no
?>



运算符:(区别于c)
符号(-)(.)

(-)放在数字前是给数字加个负号。

<?php
$x = 2;
echo -$x;//输出-2
?>

(.)拼接两个值,拼接成字符串

<?php
$x = 2;
$y = 3;
$z =  $x.$y;

$a = "hh";
$b = "hhh";
$c = $a.$b;
//省略了换行
echo $z;
var_dump($z);
echo $c;
var_dump($c);
?>


符号(xor)

(xor)(异或符)

条件中两个都为真或都为假返回false;

条件中一真一假返回true;

<?php
$arr1 = 2;
$arr2 = 0;
var_dump($arr2 xor $arr1);//输出bool(true)
var_dump($arr2+1 xor $arr1);//输出bool(false)
?>

下面这些等于号放在一行会变黄,不知道为什么

符号(==)
(===)
(!==)(<>)

还记得在match中讲的精确和模糊比较吗?

这里的(==)(等于号)在比较两个值时,会先进行类型转换成同一个类型,然后再进行比较。类似模糊比较。

而(===)(全等号)在会比较两个值的类型和值。类似精确比较。

<?php
var_dump("1"==1);//输出bool(true) 
var_dump("1"===1);//输出bool(false)
?>

输出补充:如果输出true,网页会打印1,输出false,网页不会打印东西。

(!==)(不全等)号与全等号刚好相反。

(<>)这个其实是不等号的另一种写法。



数组运算符:
符号(+)

(+)是合并两个数组。

<?php
$arr1 = ["a"=>1,"b"=>2,"d"=>3];
$arr2 = ["a"=>1,"c"=>2,"e"=>3];//一样的部分不会重复
$z = $arr1+$arr2;
var_dump($z);
?>

<?php
$arr1 = ["a"=>1,"b"=>2,"d"=>3];
$arr2 = ["c"=>1,"a"=>2,"e"=>3];//键相同值不同不会覆盖第一个数组
$z = $arr1+$arr2;
var_dump($z);
?>

如果想用第二个数组的值覆盖第一个数组,可用函数array_merge()。


符号(==)
(===)

(==)两个数组键值对相等为真。

(===)两个数组键值对相等,相对位置相同,类型相同,为真。

<?php
$arr1 = ["h"=>1,"hh"=>2,"hhh"=>3];
$arr2 = ["hh"=>2,"h"=>1,"hhh"=>3];//相对位置不同时,==亦为真
var_dump($arr1==$arr2);//输出bool(true)
var_dump($arr1===$arr2);//输出bool(false)
?>

(!=)(!==)(<>)懂的都懂!

posted @   ^cyi^  阅读(57)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示