PHP学习入门笔记

环境配置

在windows上的环境配置:可以下一个Wampserver,启动即可。注意这个软件默认是必须下载mariadb的,而且占用了3306端口,因此mysql的端口默认是3308。IDE可以使用PhpStorm,php解释器设置为wamp的安装目录下的bin/php/phpx.x.xx/php.exe.

基础

PHP语法

<!DOCTYPE html> 
<html> 
<body> 

<h1>My first PHP page</h1> 

<?php 
echo "Hello World!"; 
?> 

</body> 
</html>

注释与java类似。

print echo 为输出。

注意

  1. **方法名,函数名,类名,关键字,不区分大小写。**变量名区分大小写。

  2. 数组不只可以用array()函数来定义,也可以直接使用$arr = [1,2,3]; 和Python一样。

  3. echo一个双引号包裹的东西,里面的变量名会解析为变量而不是字符串,但如果用单引号就会解析为字符串。

  4. 如果一个数组内既有关联元素,也有下标元素,那么只有下标元素可以通过下标访问,且下标按序从0递增,不受关联元素影响。但是关联元素也会占用一个数组的空间(数组长度+1)。

  5. $a = array(
        null => 'a',
        true => 'b',
        false => 'c',
        0 => 'd',
        1 => 'e',
        '' => 'f'
    );
    //这个代码中$a的长度为3, 因为键名将被这样转换:null 转为(空字符串),true 转为 1,false 转为 0。这样最后加入的d,e,f会替换前三个元素。
    
  6. 数组中的下标元素也可看做自带默认键(数字类型,即元素下标)的关联元素。$arr[0] 这种实际上就是找到键为0 的value。

变量

<?php
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>

规则:

  • 变量以 $ 符号开始,后面跟着变量的名称
  • 变量名必须以字母或者下划线字符开始
  • 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
  • 变量名不能包含空格
  • 变量名是区分大小写的($y 和 $Y 是两个不同的变量)

作用域

  • local

    • 与Python类似,函数内部为局部变量,外部为全局变量
  • global

    • 全局变量在函数内访问,需要global声明

    • <?php
      $x=5;
      $y=10;
       
      function myTest()
      {
             
          global $x,$y;
          $y=$x+$y;
      }
       
      myTest();
      echo $y; // 输出 15
      ?>
      
    • PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。

      <?php
      $x=5;
      $y=10;
       
      function myTest()
      {
             
          $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
      } 
       
      myTest();
      echo $y;
      ?>
      
  • static

    • 函数内声明的变量在函数结束时就删除,如果想保留,比如每次调用函数时某个变量的值都保存记录,就是要static修饰该变量。

      <?php
      function myTest()
      {
             
          static $x=0;
          echo $x;
          $x++;
          echo PHP_EOL;    // 换行符
      }
       
      myTest();
      myTest();
      myTest();
      ?>
      
  • parameter

    • 与Python的参数传递一致,注意参数名为:$xxx

echo和print

echo 和 print 区别:

  • echo - 可以输出一个或多个字符串
  • print - 只允许输出一个字符串,返回值总为 1

**提示:**echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。

<?php
echo "<h2>PHP 很有趣!</h2>";
echo "Hello world!<br>";
echo "我要学 PHP!<br>";
echo "这是一个", "字符串,", "使用了", "多个", "参数。";
?>
    
<?php
$txt1="学习 PHP";
$txt2="RUNOOB.COM";
$cars=array("Volvo","BMW","Toyota");
 
echo $txt1;
echo "<br>";
echo "在 $txt2 学习 PHP ";
echo "<br>";
echo "我车的品牌是 {
     $cars[0]}";
?>
<?php
$txt1="学习 PHP";
$txt2="RUNOOB.COM";
$cars=array("Volvo","BMW","Toyota");
 
print $txt1;
print "<br>";
print "在 $txt2 学习 PHP ";
print "<br>";
print "我车的品牌是 {
     $cars[0]}";
?>

echo和print都可以使用或去掉括号。

数据类型

  • 整型
  • 字符串
    • 单引号或双引号
  • 浮点
  • 布尔
  • 数组
  • 对象
  • NULL
<?php
$x = 10.23;
$x = "1123";
$x = true;
$x = 1;
//数组
$x = array("a","s");
var_dump($x);//输出数据类型和值
$x = null;
//对象
class Car
{
   
  var $color;
  function __construct($color="green") {
   
    $this->color = $color;
  }
  function what_color() {
   
    return $this->color;
  }
}
?>

类型比较

  • 松散比较:使用两个等号 == 比较,只比较值,不比较类型。
  • 严格比较:用三个等号 === 比较,除了比较值,也比较类型。

0,false,null,“”的值相同,类型不同。

“0”和false,0,的值相同,“0”和null,“”,的值不相同。

python中 is比较地址,==比较内容。

常量

设置常量使用define()函数,语法如下:

bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )

// 区分大小写的常量名
define("GREETING", "欢迎访问 Runoob.com");
echo GREETING;    // 输出 "欢迎访问 Runoob.com"
echo '<br>';
echo greeting;   // 输出 "greeting"

常量默认是全局的,函数外定义后,函数内访问无需global关键字。

字符串

唯一的字符串运算符

并置运算符,用于连接字符串。相当于python中的+

<?php 
$txt1="Hello world!"; 
$txt2="What a nice day!"; 
echo $txt1 . " " . $txt2; 
?>

strlen()函数

返回字符串长度(字节数,英文符号占一个字节,汉字三个字节)

数组长度用count函数。

strpos()函数

找匹配

<?php 
echo strpos("Hello world!","world"); 
?>

运算符

加减乘除

与python一致,整除不是用 // ,而是用PHP7+版本运算符intdiv(1,3) = 3。

递加递减

++x; x++; --x; x–;与Java类似

比较

  • == 值等于
  • === 类型和值都等于
  • !==绝对不等于(值或类型有一个不等)

逻辑

  • and &&
  • or ||
  • xor 异或
  • !x 非

数组运算符

运算符 名称 描述
x + y 集合 x 和 y 的集合
x == y 相等 如果 x 和 y 具有相同的键/值对,则返回 true
x === y 恒等 如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true
x != y 不相等 如果 x 不等于 y,则返回 true
x <> y 不相等 如果 x 不等于 y,则返回 true
x !== y 不恒等 如果 x 不等于 y,则返回 true

组合比较符(PHP7+)

PHP7+ 支持组合比较符(combined comparison operator)也称之为太空船操作符,符号为 <=>。组合比较运算符可以轻松实现两个变量的比较,当然不仅限于数值类数据的比较。

语法格式如下:

$c = $a <=> $b;

解析如下:

  • 如果 $a > b ∗ ∗ , 则 ∗ ∗ b**, 则 ** b,c 的值为 1
  • 如果 $a == b ∗ ∗ , 则 ∗ ∗ b**, 则 ** b,c 的值为 0
  • 如果 $a < b ∗ ∗ , 则 ∗ ∗ b**, 则 ** b,c 的值为 -1

if语句

if (条件)
{
   
    if 条件成立时执行的代码;
}
elseif (条件)
{
   
    elseif 条件成立时执行的代码;
}
else
{
   
    条件不成立时执行的代码;
}

switch

<?php
$favcolor="red";
switch ($favcolor)
{
   
case "red":
    echo "你喜欢的颜色是红色!";
    break;
case "blue":
    echo "你喜欢的颜色是蓝色!";
    break;
case "green":
    echo "你喜欢的颜色是绿色!";
    break;
default:
    echo "你喜欢的颜色不是 红, 蓝, 或绿色!";
}
?>

数组/字典

数值数组:带有数字id键

<?php
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);
 
for($x=0;$x<$arrlength;$x++)
{
   
    echo $cars[$x];
    echo "<br>";
}
?>

关联数组:相当于字典

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
//或者这样定义:
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43"; 

// 输出
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";

输出数组

printr($arr);

遍历关联数组:

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
 
foreach($age as $x=>$x_value)
{
   
    echo "Key=" . $x . ", Value=" . $x_value;
    echo "<br>";
}
?>

数组排序

  • sort() - 对数组进行升序排列
  • rsort() - 对数组进行降序排列
  • asort() - 根据关联数组的值,对数组进行升序排列
  • ksort() - 根据关联数组的键,对数组进行升序排列
  • arsort() - 根据关联数组的值,对数组进行降序排列
  • krsort() - 根据关联数组的键,对数组进行降序排列
$arr = array("a","c","b");
sort($arr);

超级全局变量

  • $GLOBALS

    PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的关联数组(字典)中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。

  • $_SERVER

    $_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。

    元素/代码 描述
    $_SERVER[‘SCRIPT_NAME’] 包含当前脚本的路径。这在页面需要指向自己时非常有用。FILE 常量包含当前脚本(例如包含文件)的完整路径和文件名。
    $_SERVER[‘PHP_SELF’] 当前执行脚本的文件名,与 document root 有关。例如,在地址为 http://example.com/test.php/foo.bar 的脚本中使用 $_SERVER[‘PHP_SELF’] 将得到 /test.php/foo.bar。FILE 常量包含当前(例如包含)文件的完整路径和文件名。 从 PHP 4.3.0 版本开始,如果 PHP 以命令行模式运行,这个变量将包含脚本名。之前的版本该变量不可用。
    $_SERVER[‘SERVER_NAME’] 当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。(如: www.runoob.com)
    $_SERVER[‘HTTP_HOST’] 当前请求头中 Host: 项的内容,如果存在的话。
    $_SERVER[‘HTTP_REFERER’] 引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。)
  • $_REQUEST

    PHP $_REQUEST 用于收集HTML表单提交的数据。

    以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 “Submit” 按钮提交表单数据时, 表单数据将发送至标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_REQUEST 来收集表单中的 input 字段数据:

    <html>
    <body>
     
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
    Name: <input type="text" name="fname">
    <input type="submit">
    </form>
     
    <?php 
    $name = $_REQUEST['fname']; 
    echo $name; 
    ?>
     
    </body>
    
  • $_POST

    收集表单数据,在HTML form标签的指定该属性:"method=“post”。

  • $_GET

    应用于收集表单数据,在HTML form标签的指定该属性:"method=“get”。

    $_GET 也可以收集URL中发送的数据。

  • $_FILES

  • $_ENV

  • $_COOKIE

  • $_SESSION

循环

  • while

  • do while

  • for

以上都与Java类似

  • foreach循环:
<?php
$x=array("one","two","three");
foreach ($x as $value)
{
   
    echo $value . "<br>";
}
?>

函数

<?php
function add($x,$y)
{
   
    $total=$x+$y;
    return $total;
}
 
echo "1 + 16 = " 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值