PHP基础学习

PHP

1.什么是PHP?

一种服务器端脚本语言,被广泛用于制作动态页面。 PHP代表“ PHP超文本处理器 ”及其开放源代码脚本语言。
PHP脚本可以与文件,数据库一起使用,并且我们可以使用PHP对我们的网页实施身份验证和授权。

2.PHP语法

PHP脚本以<?php开头,以?>结尾,PHP文件的默认扩展名为“ .php”。

<?php // PHP code ?>

每个语句以分号结尾,用于输出文本的两个基本语句是echo和print 。

3.PHP注释

可以用两个正斜杠在一行中写注释,也可以在一个块中写注释。

4.PHP变量
  • 变量以 $ 符号开头,后跟变量名称,例如$ abc。
  • 变量名称必须以字母或下划线字符开头。 一些有效的名称是$ _abc,$ a12等。
  • 变量名称只能包含字母数字字符和下划线(Az,0-9和_)。 因此,$ a.b不是有效的变量名称。
  • 变量名不能包含空格。
  • 变量名称区分大小写($ a和$ A是两个不同的变量)。
  • 我们不需要声明变量的类型,PHP会自动将变量转换为正确的数据类型。
5.PHP变量范围

PHP变量具有四个不同的作用域- 局部 , 全局 , 静态和参数

  • 局部作用域 –如果我们在函数内部声明变量,则其作用域是局部的,只能在函数中使用它进行访问。 函数执行后立即删除局部变量。
<?php
$var=5; // global scope
 
function test()
{
echo $var; // local scope
}
 
test();
?>
  • 全局范围 –如果变量在函数外部声明,则其范围是全局的,并且如果我们要访问函数内部的全局变量,则需要使用global关键字。(PHP还将所有全局变量存储在数组$ GLOBALS中,并使用变量名,可以使用此数组直接在PHP脚本中的任何位置访问它。)
<?php
$a=5; // global scope
$b=1; // global scope
 
function test()
{
global $a,$b;
$b=$a+$b;
}
 
echo $b; // output is 1
test();
echo $b; // output is 6
?>
<?php
$a=5; // global scope
$b=1; // global scope
 
function test()
{
global $a,$b;
$b=$a+$b;
}
 
echo $b; // output is 1
test();
echo $b; // output is 6
?>
  • 静态作用域 –如果您希望函数执行后不删除局部变量,则可以将其声明为静态。 但是,静态变量仅在函数本地,而不能在其他函数中引用。 我们可以使用静态变量来计算函数执行的次数。
    例如:下面的脚本将打印“ 01”。
<?php
 
function test()
{
static $x=0;
echo $x;
$x++;
}
 
function test1()
{
echo $x; //this won't print anything because $x is static but local to test()
$x++;
}
 
test();
test1();
test();
 
?>
  • 参数范围 –参数是通过调用它的代码传递给函数的局部变量。 参数也称为参数。
    例如:
<?php
$y=10;
function test($x) //$x is a parameter and have parameter scope.
{
echo $x;
$x=$x+1;
}
 
test($y); // passing parameter
test($y); // value of $y still remains 10
test($y);
?>
6.PHP字符串

字符串是字符流,在PHP中,我们可以使用带值的单引号或双引号来创建字符串,并将其分配给任何变量。

<?php
$str1 = "Pankaj";
$str2 = 'Kumar';
 
echo $str1 . " " . $str2; // prints "Pankaj Kumar"
 
echo "<br>"; // for printing in new line, echoing HTML new line code
 
echo strlen($str1);   // prints 6
echo strlen($str2);   // prints 5
 
echo strpos($str1,"a"); //prints 1, index starts with 0
echo strpos($str2,'k'); //prints nothing, PHP is case sensitive
 
?>

我们可以使用句点( . )来连接两个字符串。 其他一些有用的String函数是strlen(),它返回String的长度,而strpos()可以用来搜索String中的任何字符或文本。 我们可以在上面的示例中看到这些。

PHP运算符

我们可以将 PHP 运算符用于字符串、整数、布尔和数组。

PHP 运算符类型
  1. PHP 算术运算符
    在这里插入图片描述
<?php

$a = 10;
$b = 5;
$c = 3;
$d = 8;

//addition example
$add=$a + $b;
echo $add; //prints 15
echo "<br>";

//subtraction example
$sub = $a - $b;
echo $sub; //prints 5
echo "<br>";

//multiplication example
$mul = $a * $b;
echo $mul; //prints 50
echo "<br>";

//division example
$div = $a / $b;
echo $div; // prints 2
echo "<br>";
echo $a/$c; //prints 3.3333333333333
echo "<br>";
echo $d/$c; //prints 2.6666666666667
echo "<br>";

//modulus example
$mod= $a % $b;
echo $mod;
echo "<br>"; //prints 0

//Negation example
$neg = -$a;
echo $neg; //prints -10;
echo "<br>";

//Concatenation example
$str1="Pankaj";
$str2="Kumar";

echo $str1 . " " . $str2; //prints "Pankaj Kumar"
echo "<br>";

echo $a . $b; //prints 105
echo "<br>";

echo $c . $d; //prints 38
?> 
  1. PHP 分配运算符
    在这里插入图片描述
<?php

$a=12;

//assignment operator example
$b=$a;
echo $b; //prints 12
echo "<br>";

$a+=$b;
echo $a; //prints 24, same as a=a+b
echo "<br>";

$a-=$b;
echo $a; //prints 12, same as a=a-b=24-12
echo "<br>";

$a*=$b;
echo $a; //prints 144, same as a=a*b=12*12
echo "<br>";

$a/=$b;
echo $a; //prints 12, same as a=a/b=144/12
echo "<br>";

$a%=$b;
echo $a; //prints 0, same as a=a%b=12%12
echo "<br>";

$a.=$b;
echo $a; //prints 012, same as a=a.b=0.12=012

?> 
  1. PHP 增量/递增运算符
    在这里插入图片描述
<?php

$a=12;

//Pre-increment example
$b=++$a;
echo "a=".$a." ,b=".$b; //prints a=13 ,b=13
echo "<br>";

//Post-increment example
$b=$a++;
echo "a=".$a." ,b=".$b; //prints a=14 ,b=13
echo "<br>";

//Pre-decrement example
$b=--$a;
echo "a=".$a." ,b=".$b; //prints a=13 ,b=13
echo "<br>";

//Post-decrement example
$b=$a--;
echo "a=".$a." ,b=".$b; //prints a=12 ,b=13
echo "<br>";

?> 
  1. PHP 比较运算符 在这里插入图片描述
<?php

$a=10;
$b="10";
$c=10;
$d=5;

//Equal example
var_dump($a==$b); //prints bool(true) 
echo "<br>";
var_dump($a==$c); //prints bool(true) 
echo "<br>";

//Identical example
var_dump($a===$b); //prints bool(false) 
echo "<br>";
var_dump($a===$c); //prints bool(true) 
echo "<br>";

//Not equal example
var_dump($a!=$b); //prints bool(false) 
echo "<br>";
var_dump($a!=$c); //prints bool(false) 
echo "<br>";
var_dump($a<>$b); //prints bool(false) 
echo "<br>";
var_dump($a<>$c); //prints bool(false) 
echo "<br>";

//Not identical example
var_dump($a!==$b); //prints bool(true) 
echo "<br>";
var_dump($a!==$c); //prints bool(false) 
echo "<br>";

//Less than example
var_dump($a<$b); //prints bool(false) 
echo "<br>";
var_dump($a<$d); //prints bool(false) 
echo "<br>";

//Greater than example
var_dump($a>$b); //prints bool(false) 
echo "<br>";
var_dump($a>$d); //prints bool(true) 
echo "<br>";

//Less than or equal to example
var_dump($a<=$b); //prints bool(true) 
echo "<br>";
var_dump($a<=$d); //prints bool(false) 
echo "<br>";

//Greater than or equal to example
var_dump($a>=$b); //prints bool(true) 
echo "<br>";
var_dump($a>=$d); //prints bool(true) 
echo "<br>";

?> 
  1. PHP 逻辑运算符
    在这里插入图片描述
<?php

$a=true;
$b=false;
$c=true;

//And example
var_dump($a and $b); //prints bool(false)
var_dump($a and $c); //prints bool(true)

var_dump($a && $b); //prints bool(false)
var_dump($a && $c); //prints bool(true)

echo "<br>";

//Or example
var_dump($a or $b); //prints bool(true)
var_dump($a or $c); //prints bool(true) 

var_dump($a || $b); //prints bool(true)
var_dump($a || $c); //prints bool(true)
echo "<br>";

//Xor example
var_dump($a xor $b); //prints bool(true)
var_dump($a xor $c); //prints bool(false)
echo "<br>";

//Not example
var_dump(!$a); //prints bool(false)
var_dump(!$b); //prints bool(true)
echo "<br>";

?> 
  1. PHP 位运算符
    在这里插入图片描述
<?php

$a=15; // 00001111
$b=35; // 00100011

//Bitwise And example
$c=$a & $b;
//	00001111
// &00100011
//  00000011

echo $c; //prints 3
echo "<br>";

//Bitwise Or example
$c=$a | $b;
//	00001111
// |00100011
//  00101111

echo $c; //prints 47
echo "<br>";

//Bitwise Xor example
$c=$a ^ $b;
//	00001111
// ^00100011
//  00101100

echo $c; //prints 44
echo "<br>";

//Bitwise Not example
$c=$a & ~$b; //bits that are set in a but not in b, 00001100 = 12
$d=$b & ~$a; //bits that are set in b but not in a, 00100000 = 32

echo $c; //prints 12
echo "<br>";
echo $d; //prints 32
echo "<br>";

//Shift left example
$c=$a<<2; //bits shifted to left two places, 00111100 = 60
echo $c; //prints 60
echo "<br>";

//Shift right example
$c=$a>>2; //bits shifted to right two places, 00000011 = 3
echo $c; //prints 3

?>
  1. PHP 阵列运算符
    在这里插入图片描述
<?php

$cars=array("BMW","Toyota","Honda");
$buses=array("BMW","Volvo","Tata","Mercedez");

//Union of Arrays
$cars_buses = $cars + $buses;
$arrlength=count($cars_buses);

for($x=0;$x<$arrlength;$x++)
  {
  echo $cars_buses[$x] . " "; //prints "BMW Toyota Honda Mercedez "
  }
echo "<br>";

//Arrays Equality
$cars1=array("BMW","2" => "Honda",1 => "Toyota");
var_dump($cars == $cars1); //prints bool(true);
var_dump($cars == $buses); //prints bool(false);
echo "<br>";

//Identical Arrays operator
var_dump($cars === $cars1); //prints bool(false);
var_dump($cars === $buses); //prints bool(false);
echo "<br>";

//Inequality example
var_dump($cars != $cars1); //prints bool(false);
var_dump($cars != $buses); //prints bool(true);
echo "<br>";

var_dump($cars <> $cars1); //prints bool(false);
var_dump($cars <> $buses); //prints bool(true);
echo "<br>";

//Non-Identical Arrays operator
var_dump($cars !== $cars1); //prints bool(true);
var_dump($cars !== $buses); //prints bool(true);
echo "<br>";

?>
  1. PHP 类型运算符
    实例是用于确定 PHP 变量是否为类的实例化对象的类型运算符。
<?php
class MyClass{}

class OtherClass{}

$var = new MyClass;

var_dump($var instanceof MyClass); // prints bool(true)
var_dump($var instanceof OtherClass); // prints bool(false)

?> 

PHP If-Else、开关案例和速记三元运算符示例

PHP 提供了几个可用于此条件语句的条件语句:

  1. if 语句 – 仅在条件为 true 时,当您需要执行代码段时,才使用 if 语句。
  2. if-Else 语句 – 它用于在条件为 true时执行一段代码,当条件为 false 时用于执行另一段代码。
  3. If-Else-If 语句 –当有多个代码可以基于条件执行时使用,只要其中一个条件为 true 并执行其代码块,则从语句中生成控件。
  4. Switch 语句 – 它与 if-else-if 语句相同,但它使代码更简洁。
  5. 三元运算符 –三元运算符提供了一种编写上述所有条件语句的速记方法。如果条件不是很复杂,最好使用三元运算符来减小代码大小,但对于更复杂的条件,可能会变得混乱。
    语法为(Condition)? <Condition=True>:<Condition=False>
<?php

$a=15;
$str="David";
$str1="Pankaj";
$color="Red";

//if condition example
if($a==15){
	echo "value of a is 15";
	echo "<br>";
}

//if-else condition example
if($str1 == "Pankaj"){
	echo "Hi Pankaj";
	echo "<br>";
}else {
	echo "Hi There!";
	echo "<br>";
}

//if-else-if example

if($str == "Pankaj"){
	echo "Hi Pankaj";
	echo "<br>";
}else if($str == "David"){
	echo "Hi David";
	echo "<br>";
} else{
	echo "Hi There!";
	echo "<br>";
}

//switch statement example

switch ($color){
	case "Red":
		echo "Red Color";
		break; //for breaking switch condition
	case "Green":
		echo "Green Color";
		break;
	default:
		echo "Neither Red or Green Color";
}
echo "<br>";

//PHP ternary operator example

// implementing the above if example with ternary operator
echo ($a == 15) ? "value of a is 15"."<br>":"";

// implementing the above if-else example with ternary operator
echo ($str1 == "Pankaj") ? "Hi Pankaj"."<br>" : "Hi There!"."<br>";

//implementing above if-else-if example with ternary operator
echo ($str == "Pankaj") ? "Hi Pankaj"."<br>" : (($str == "David") ? "Hi David"."<br>" : "Hi David"."<br>");

//implementing switch statement with ternary operator
echo ($color == "Red") ? "Red Color" : (($color == "Green") ? "Green Color" : "Neither Red or Green Color");
?> 

上述 PHP 脚本的输出是:

value of a is 15
Hi Pankaj
Hi David
Red Color
value of a is 15
Hi Pankaj
Hi David
Red Color

PHP 阵列 = 索引、关联和多维

数组是一组相似类型的变量。PHP 提供函数来创建 PHP 数组 , array( )。
  1. PHP 索引数组—具有数字索引的数组
    有两种方法可以创建索引数组。
    • 使用数组()函数的第一种方法,没有任何索引,索引从 0 开始自动分配。
    • 手动分配索引和创建数组的第二种方法。
    PHP 函数用于获取数组的长度。我们可以使用 for 循环遍历索引数组的所有值。count()
    下面的代码显示了创建索引数组并在 PHP 中循环运行的方法:
<?php
$colors = array("Red","Green","Blue");

$colors1[0] = "Red";
$colors1[1] = "Green";

$length = count($colors);
echo "colors array length=" . $length; // prints "colors array length=3"
echo "<br>";
echo "colors1 array length=" . count($colors1); // prints "colors1 array length=2"

//looping an indexed array
for($i=0; $i<$length; $i++){
	echo $colors[$i];
	echo "<br>";
}
?>
  1. PHP 关联阵列—具有键值对的数组,类似于 java 中的映射
    关联数组对值使用命名键,我们可以以类似索引数组的方式创建它们。 用于循环通过关联数组。foreach
<?php

$colors = array("0"=>"Red","1"=>"Green","2"=>"Blue");

echo "0th element of array is " . $colors["0"];
echo "<br>";
//looping
foreach ($colors as $key=>$value){
	echo "Key=".$key." value=".$value;
	echo "<br>";
}
?> 

上述PHP脚本的输出是:

0th element of array is Red
Key=0 value=Red
Key=1 value=Green
Key=2 value=Blue
  1. PHP 中的多维数组—数组数组
  • 多维数组是数组数组。我们可以使用数组函数创建二维、三维和n维数组。
  • 多维数组中的每个数组都可以是索引数组或关联数组。我们可以使用循环来循环通过索引数组和循环通过关联数组。for foreach
  • 在下面的示例中,我显示了多维数组中的二维索引数组和索引数组和关联数组的混合。
  • 我们可以使用 或 函数来打印数组的人类可读形式。print_r() var_dump()
<?php

//Indexed two-dimensional array
$cars = array(
				array("Honda Accord", "V6", 30000),
				array("Toyota Camry", "LE", 24000),
				array("Nissan Altima", "V1"),
			);

//printing array information			
print_r($cars);
echo "<br>";
var_dump($cars);
echo "<br>";
//looping through two-dimensional indexed array

for($i=0;$i<count($cars);$i++){
	for($j=0;$j<count($cars[$i]);$j++){
		echo $cars[$i][$j] . " ";
	}
	echo "<br>";
}
echo "<br><br>";

//Indexed Associative two-dimensional array
$cars = array(
				array("Name" => "Honda Accord", "Model" => "V6", "Cost" => 30000),
				array("Name" => "Toyota Camry", "Model" => "LE", "Cost" => 24000),
				array("Name" => "Nissan Altima", "Model" => "V1"),
			);

//printing array information			
print_r($cars);
echo "<br>";
var_dump($cars);
echo "<br>";

//looping through two-dimensional indexed associative array

for($i=0;$i<count($cars);$i++){
	$c=0;
	foreach($cars[$i] as $key=>$value){
		$c++;
		echo $key."=".$value;
		if($c<count($cars[$i])) echo ",";
	}
	echo "<br>";
}
?>

上述 PHP 脚本的输出为:

Array ( [0] => Array ( [0] => Honda Accord [1] => V6 [2] => 30000 ) [1] => Array ( [0] => Toyota Camry [1] => LE [2] => 24000 ) [2] => Array ( [0] => Nissan Altima [1] => V1 ) ) 
array(3) { [0]=> array(3) { [0]=> string(12) "Honda Accord" [1]=> string(2) "V6" [2]=> int(30000) } [1]=> array(3) { [0]=> string(12) "Toyota Camry" [1]=> string(2) "LE" [2]=> int(24000) } [2]=> array(2) { [0]=> string(13) "Nissan Altima" [1]=> string(2) "V1" } } 
Honda Accord V6 30000 
Toyota Camry LE 24000 
Nissan Altima V1 


Array ( [0] => Array ( [Name] => Honda Accord [Model] => V6 [Cost] => 30000 ) [1] => Array ( [Name] => Toyota Camry [Model] => LE [Cost] => 24000 ) [2] => Array ( [Name] => Nissan Altima [Model] => V1 ) ) 
array(3) { [0]=> array(3) { ["Name"]=> string(12) "Honda Accord" ["Model"]=> string(2) "V6" ["Cost"]=> int(30000) } [1]=> array(3) { ["Name"]=> string(12) "Toyota Camry" ["Model"]=> string(2) "LE" ["Cost"]=> int(24000) } [2]=> array(2) { ["Name"]=> string(13) "Nissan Altima" ["Model"]=> string(2) "V1" } } 
Name=Honda Accord,Model=V6,Cost=30000
Name=Toyota Camry,Model=LE,Cost=24000
Name=Nissan Altima,Model=V1
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力不熬夜的小喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值