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 = "user@example.com";
$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"
?>
posted @ 2024-06-10 12:18  AtongM  阅读(4)  评论(0编辑  收藏  举报