首页 > 编程语言 >PHP基础

PHP基础

时间:2024-06-10 12:21:35浏览次数:30  
标签:__ 返回 基础 echo 运算符 数组 PHP

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 向它运行的任何脚本提供了大量的预定义常量。
有八个魔术常量它们的值随着它们在代码中的位置改变而改变。

  • __LINE__ : 返回行数
<?php
echo '这是第 " '  . __LINE__ . ' " 行';
?>
  • __FILE__ :返回文件地址
<?php
echo '该文件位于 " '  . __FILE__ . ' " ';
?>
  • __FUNCTION__ :返回函数名
<?php
function test() {
    echo  '函数名为:' . __FUNCTION__ ;
}
test();
?>
  • __CLASS__ : 返回类名
<?php
class test {
    function _print() {
        echo '类名为:'  . __CLASS__ . "<br>";
        echo  '函数名为:' . __FUNCTION__ ;
    }
}
$t = new test();
$t->_print();
?>
  • __METHOD__ : 类的方法名
<?php
function test() {
    echo  '函数名为:' . __METHOD__ ;
}
test();
?>
  • __NAMESPACE__
<?php
namespace MyProject;
 
echo '命名空间为:"', __NAMESPACE__, '"'; // 输出 "MyProject"
?>

标签:__,返回,基础,echo,运算符,数组,PHP
From: https://www.cnblogs.com/atongmuhao/p/18240572

相关文章

  • V-STARS 摄影测量基础
    V-STARS摄影测量基础[!NOTE]本文翻译自GeodeticSystemsInc,原文链接:https://www.geodetic.com/basics-of-photogrammetry/。摄影测量摄影测量基础知识在描述V-STARS系统(Video-SimultaneousTriangulationandResectionSystem)的操作之前,先为那些不熟悉该技术的人简要......
  • Python 机器学习基础:掌握 Pandas 数据处理库的奥秘
    在Python的机器学习领域中,Pandas是一个不可或缺的工具。它不仅提供了强大的数据结构,还拥有数据处理和分析的能力,是数据科学家和机器学习工程师的得力助手。本文将深入探讨Pandas的核心功能,并通过实际案例,展示其在机器学习项目中的关键作用。1.Pandas简介Pandas是......
  • 计算机基础知识之浮点数的表示
    目录定点数表示浮点数表示习题浮点数的规格化例题习题计算机基础知识之原码、补码、反码和移码:https://www.cnblogs.com/kohler21/p/18233912定点数表示定点小数(纯小数)在计算机中的表示形式:注:在计算机中,定点小数主要用于表示浮点数的尾数,并没有高级语言数据类型与之相对应......
  • Prov-GigaPath:新型数字病理基础模型|顶刊精析·2024-06-10
    小罗碎碎念顶刊精析|2024-06-10首先祝各位老师、师兄师姐、师弟师妹们端午节快乐!!小罗是社恐,所以就不一一发消息问候了,哈哈。今天这篇推文是昨天下午写完的,想着时间有点晚了,所以就放到今天发了。这篇文献想必很多研究病理组学的老师已经看到了,朋友圈也看到了这篇文献相......
  • 【转载】基于 Docker 的 PHP 集成环境 DNMP
    参考https://github.com/yeszao/dnmp?tab=readme-ov-filehttps://learnku.com/articles/19289https://www.awaimai.com/2120.html源码【下载】(由于限制20m上传,删除.git文件夹)环境软件/系统版本说明WindowsWindows10专业版22H219045.4412DockerDes......
  • java基础
    java题目练习day01Java提供的四种访问控制符Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java支持4种不同的访问权限。default:在同一个包里面可见,不适用任何修饰符。使用对象:类、接口、变量、方法。private:在同一类中可见。使用对象:变量、方......
  • Vue2基础知识:v-model在组件传值中的使用,表单组件如何封装,如何用v-model简化父传子,子传
    要想要了解v-model在组件传值中如何使用首先得先了解表单组件如何封装数据在父组件那里,表单结构在子组件那里。1.表单组件如何封装1.父传子:数据应该是父组件props传递过来的,v-model拆解绑定数据。(为什么说是拆解呢?因为不可以直接v-model绑定,子组件只能改变自己的值,不能改变......
  • AcWing算法基础课笔记——最小生成树与二分图
    目录朴素版prim算法——模板题AcWing858.Prim算法求最小生成树题目代码Kruskal算法——模板题AcWing859.Kruskal算法求最小生成树题目代码染色法判别二分图——模板题AcWing860.染色法判定二分图题目代码匈牙利算法——模板题AcWing861.二分图的......
  • AcWing算法基础课笔记——求最短路算法
    目录朴素dijkstra算法——模板题AcWing849.Dijkstra求最短路I题目代码堆优化版dijkstra——模板题AcWing850.Dijkstra求最短路II题目代码Bellman-Ford算法——模板题AcWing853.有边数限制的最短路题目代码spfa算法(队列优化的Bellman-Ford算法)——......
  • minio的一个基础使用案例:用户头像上传
    文章目录一、minio下载安装(Windows)二、案例需求分析三、后端接口开发一、minio下载安装(Windows)1.下载minio服务端和客户端minio下载地址2.手动搭建目录/minio/binmc.exeminio.exe/data/logs手动创建minio应用程序目录,如......