php总结
基础知识
- 程序写在<?php ?>标签内
- echo 输出一个以上字符串,中间用逗号隔开,用顿号连接
- 换行符PHP_EOL
- print 智能输出一个字符串,有固定返回值为1.
- ?:三元运算符,1+2==3?4:5 这句话的意思是如果1+2为真返回3,否则返回4
- ??空合并运算符,$a ?? “b”;这句话意思是如果a是未定义或值为null,则给它一个默认值为b,否则返回原值。
- <=>组合比较符,$c= $a<=> $b;这句话意思是如果a>b则c=1,a=b,c=0,a<b,c=-1。可以比较字符串,比较字符串的时候是从前往后挨个比较字符串的ASCII码的大小。
- isset($a) 如果a已声明且不为null则返回true,否则false
- is_null($a),如果a值为null则返回true,未声明会报错
- empty( $a),当a的值为0,false,null,空数组,空字符串的时候返回true,否则false。未定义的时候也会返回true,但是一般不用它判断未定义变量。
循环
- switch循环必须要用break跳出
//下面代码case后面不用break的话,会从第一个符合要求的语句开始,往后全部输出一遍。
switch ($favfruit) {
case "apple":
echo "Your favorite fruit is apple!";
case "banana":
echo "Your favorite fruit is banana!";
case "orange":
echo "Your favorite fruit is orange!";
default:
echo "Your favorite fruit is neither apple, banana, or orange!";
}
- continue 循环的跳出,continue控制程序放弃本次循环continue语句之后的代码并转而进行下一次循环。continue本身并不跳出循环结构,只是放弃这一次循环。
- break 他的作用是跳出当前的语法结构,执行下面的语句。break语句可以带一个参数n,表示跳出循环的层数,如果要跳出多重循环的话,可以用n来表示跳出的层数,如果不带参数默认是跳出本重循环。
for($i = 1;$i <= 10; $i++ ){
for($j = 1;$j <= 10;$j++){
$m = $i * $i + $j * $j;
echo”$m \n<br/>”;
if($m < 90 || $m > 190) {
break 2;
}
}
}
这里使用了break2跳出了两重循环
数组
php里数组更像是java里的对象,可以指定每个元素的键,如果不指定键默认情况下是0123,当数组里只指定了部分键时,没有指定的元素键值就是默认的数字键。常用函数:count输出数组长度,print_r输出数组,foreach遍历数组。
$a=["name"=>"tom","age"=>"12","sex"=>"man"];//指定键和值
$b=[1,2,3];
$b=[
[1,2,3],
["a"=>11,"b"=>22,"c"=>23],
];
print_r($a);//打印数组
print_r($b);
count($a);//输出数组的长度。
echo $a['name'];
echo $b[1]["a"];
//数组的遍历,key是键,value是值,PHP_EOL是php里的常量,表示换行。
foreach($a as $key => $value){
echo PHP_EOL.$key.$value;
}
//数组的追加,下面这句话会自动把c追加到数组的末尾,键默认数字
$b[]=$c;
数组的运算
- 加号,两个数组合并,$a+ $b表示把b合并到a,相同键的元素保留加号前面数组的元素,不同键的元素追加到a的末尾。
- array_merge( $a, $b)函数和加号类似,只有一点相反,相同键的元素会用后面的替换前面的。
- 判断相等 == 有相同的键值对,相同的即为true。===有相同的键值对,且顺序相同,且类型相同才为true。
数组在网站中实际使用案例
<?php
$contentArr=[
[
"content"=>"这里是您的博客内容,您可以使用html和css编写自己的网页。",
"createDay"=>"2023.09.25"
],
[
"content"=>"个人介绍",
"createDay"=>"2023.09.23"
],
[
"content"=>"文章列表",
"createDay"=>"2023.09.22"
],
[
"content"=>"联系方式等",
"createDay"=>"2023.09.21"
],
[
"content"=>"这里是",
"createDay"=>"2023.09.20"
],
];
$content="这里是您的博客内容,您可以使用html和css编写自己的网页。";
$creatDay="2023.09.25";
?>
<div class="container">
<h1 class="title">欢迎来到我的博客</h1>
<!-- 遍历数组,并输出到HTML标签 -->
<!-- foreach可以分开写,使用php标签分成两部分,中间是HTML标签 -->
<?php
foreach($contentArr as $key=>$value){
?>
<div class="text-area">
<span class="number"><?php echo ($key+1) ?></span>
<span class="create-day"><?php echo $value["createDay"]?></span>
<?php echo $value["content"]?>
</div>
<?php
}
?>
<!-- 使用定界符的写法 -->
<?php
foreach($contentArr as $value){
echo <<<EOF
<div class="text-area">
<span class="create-day">{$value["createDay"]}</span>
{$value["content"]}
</div>
EOF;
}
?>
<div class="text-area">
<span class="create-day"><?php echo $creatDay ?></span>
<?php echo $content?>
</div>
<!-- <div class="text-area">
<span class="create-day">2023.09.21</span>
个人介绍
</div>
<div class="text-area">
<span class="create-day">2023.09.20</span>
文章列表
</div>
<div class="text-area">
<span class="create-day">2023.09.19</span>
联系方式等
</div>
<div class="text-area">
<span class="create-day">2023.09.18</span>
这里是
</div> -->
</div>
字符串函数
- strlen() 字符串长度,英文字符长度为1,汉字长度为3
- strpos($str,“xxx”) 查找某一段字符串第一次出现的位置,没找到返回false。一般用来判断是否含有某段字符串
- stripos()同上,不区分大小写
- strrpos() 同上上,查找最后一次出现的位置
- strripos() 同上,不区分大小写
- explode(“,”,$str)根据给定的字符,把字符串分割成段,并写入数组内
- implode(“,”,$str)使用给定的字符,把数组拼接成字符串
- strtoupper()把字符串改成大小
- strtolower()把字符串改成小写
- str_replace($search, $replace, $str)查找字符串中的目标文字,并替换成别的字符串
- trim() 去除字符串两端的空格
- substr()截取字符串的一部分
- 更多字符串函数,参考菜鸟教程
定界符
当输出内容需要多次拼接时比较麻烦,可以直接使用定界符<<<EOF,三个尖括号必须,后面的EOF可以换位任意字,只要以同样的字结束即可,结束的字必须顶行写,后面有分号。
当在定界符内部使用数组时需要用大括号括起来。
foreach($navbarArr as $value){
$x=$value["title"];
echo
<<<EOF
{$value["title"]}
EOF;
函数
- date(‘Y-m-d h-m-s’) 年月日时分秒,括号内格式可自定义,Y表示2024年,y24年
- 函数的定义方法如下,默认情况下不区分参数类型,需要严格区分类型需用declare(strict_types=1)
function name(){};
function name($a){};
function name(int $a){};
//严格区分参数类型
declare(strict_types=1);
function name(int $a){};
static 使函数运行完后函数中的变量仍然存在,正常情况运行完就销毁了
function run(){
static $a=0;
$a++;
return $a;
}
这个每次运行a都会递增,不带static则每次结果都是1.
unset($a) 删除变量
isset($a) 判断变量是否存在
global 定义全局变量,函数内部定义也有全局作用域
GLOBALS 超级全局变量,这是个数组,使用方式:GLOBALS【‘name’】=“xxx”,执行完就作为数组的元素成为全局变量了。
原文地址:https://blog.csdn.net/zhyue28/article/details/140444351
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!