PHP初学习

PHP

基础知识
<?php
#这是一个注释echo "<h1>hello world</h1>";
//字符串拼接$message="hello";$name="你好";$message."".$name;echo "<br>";//单引号与双引号的区别,单引号无法解析变量echo "my name is $name";	//my name is 你好echo 'my name is $name';	//my name is $nameecho "<br>";//调试函数var_dump($name);	//string(6) "你好"   //与echo区别是调试函数无返回值,还能查询变量的数据类型//常量定义,一般用大写字母
define("MESSAGE","hello 你好",true);//这种方法已被启用
const MESSAGE = "hello 你好";//布尔类型$x1 = true;$x2 = TRUE;//类型检测
if(is_bool($x1)){echo "我是布尔类型";
}//<<<提示符 定义heredoc类型的字符串#标识符  开始标记 结束标记$name1 = "张三";$message1 = <<<EOT<h1>这是一个标签</h1><div class="box">这是一个div<a>这是一个a标签</a></div>EOT;echo $message1;//数组$arr = {"1",2};$arr1 = [1,2,3,4];var_dump($arr);		//array(2){[0]=>string(1)"1"[1]=>int(2)}echo "<br>";var_dump($arr1);	//array(4){[0]=>int(1)[1]=>int(2)[2]=>int(3)[3]=>int(4)}//分配ID键$arr2 = ["count"=>"hello","foo"=>123];var_dump($arr2);	//arry(2){["count"]=>string(5)"hello"["foo"]=>int(123)}
//运算符 ①连接运算符. ②连接赋值运算符.=$a="hello";$b=$a."world";	//hello world$a.="world";	//hello world//增删改查//增//删unset($arr[1]);unset($arr2["count"]);echo "<br>";//改echo $arr[0] = 2;echo $arr2["count"] = "你好";echo "<br>";//查echo $arr[0];echo "<br>";echo $arr2["count"];echo "<br>";//对象new Person();	//Person 类class Person{	//自定义的类var $count = 1;function getCount(){echo $this->count;}}$instance = new Person();	//Person类 实例对象//访问对象属性	js里是 对象.属性echo $instance->count;$instance->getCount();?>

网址unbug.github.io/codeIf/#加密

转换布尔值
  • 当转换为boolean时,以下值被认为是FALSE:
    • 布尔值FALSE本身
    • 整形值 0(零)
    • 浮点型值 0.0(零)
    • 空字符串,以及字符串 “0”
    • 不包括任何元素的数组
    • 特殊类型 NULL(包括尚未赋值的变量)
    • 从空标记生成的SimpleXML对象
    • 所有其他值都被认为是TRUE(包括任何资源和NAN)
运算符
  • 比较运算符,允许对两个值比较
运算符名称描述实例
x==y等于如果x等于y,则返回true5==8返回false
x===y绝对等于如果x等于y,且它们类型相同,则返回true5==“5”返回false
x!=y不等于如果x不等于y,则返回true5!==8返回true
x<>y不等于如果x不等于y,则返回true5<>8返回true
x!===y绝对不等于如果x不等于y,或它们的类型不相同,则返回true5!=="5"返回true
x>y大于如果x大于y,则返回true5>8返回false
x<y小于如果x小于y,则返回true5<8返回true
x>=y大于等于如果x大于或等于y,则返回true5>=8返回false
x<=y小于等于如果x小于或等于y,则返回true5<=8返回true
  • 逻辑运算符,将值进行逻辑运算。主要有与、或、非等逻辑。
运算符名称例子结果
and$x and $y如果 x 和 x和 xy都为true,则返回true
&&$x && $y如果 x 和 x和 xy都为true,则返回true
or$x or $y如果 x 和 x和 xy至少有一个为true,则返回true
||$x || $y如果 x 和 x和 xy至少有一个为true,则返回true
xor异或$x xor $y如果 x 和 x和 xy有且仅有一个为true,则返回true
!$x如果$x不为true,则返回true
  • 运算符优先级表
结合方向运算符附加信息
clone newclone和new
[array()
++ – ~ (int) (float) (string) (array) (object) (bool) @类型和递增/递减
instanceof类型
逻辑运算符
* / %算术运算符
+ - .算术运算符和字符串运算符
<< >>位运算符
== != === !== <>比较运算符
&位运算符和引用
^位运算符
|位运算符
&&逻辑运算符
||逻辑运算符
?:三元运算符
= += -= *= /= .= %= &= |= ^= <<= >>= =>赋值运算符
and逻辑运算符
xor逻辑运算符
or逻辑运算符
,多处用到
  • 数组运算符
运算符名称例子结果
+联合$x + $y x 和 x和 xy的联合(但不覆盖重复的键)
==相等$x == $y如果 x 和 x和 xy拥有相同的键:值对,则返回true
===全等$x === $y如果 x 和 x和 xy拥有相同的键:值对,且顺序相同、类型相同则返回true
!=不相等$x != $y如果 x 不等于 x不等于 x不等于y,则返回true
<>不相等$x <> $y如果 x 不等于 x不等于 x不等于y,则返回true
!===不全等$x !=== $y如果 x 与 x与 xy不完全相同,则返回true
  • 递增/递减运算符
    • PHP支持C风格的前后递增与递减运算符
    • 递增/递减运算符不影响布尔值。递减NULL值没有效果,但是递增NULL的结果是1,也就是说递增/递减运算过程中,不会把操作数转换成整数后再运算,如果操作数是布尔值,则直接返回结果
例子名称效果
++$a前加 a 的值加一,然后返回 a的值加一,然后返回 a的值加一,然后返回a
$a++后加返回 a ,然后将 a,然后将 a,然后将a的值加一
-$a前减 a 的值减一,然后返回 a的值减一,然后返回 a的值减一,然后返回a
$a-后减返回 a ,然后将 a,然后将 a,然后将a的值减一
  • 新增运算符
//在PHP7+版本多了一个NULL合并运算符??,实例如下(①②两个作用一样)#①如果$_GET['user']不存在返回'nobody',则返回$_GET['user']的值$username = $_GET['user'] ?? 'nobody';#②类似的三元运算符$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';//在PHP7+支持组合比较符也称为太空船操作符,符号为<=>。组合比较运算符可以轻松实现两个变量的比较,当然不仅限于数值类数据的比较#语法格式$c = $a <=> $b;#解析如下如果$a > $b,则$c的值为1;			echo 2 <=> 1; //1如果$a == $b,则$c的值为0;			echo 1 <=> 1; //0如果$a < $b,则$c的值为-1。			echo 1 <=> 2; //-1
类型比较
  • 虽然PHP是弱类型语言,但是也需要明白变量类型及它们的意义,因为我们经常需要对PHP变量进行比较,包含松散比较和严格比较:
    • 松散比较:使用两个等号==比较,只比较值,不比较类型
    • 严格比较:用三个等号===比较,除了比较值还比较类型
  • 比较多种类型
    • null和string:将null转化成"",进行词汇的比较
    • bool和任意其他的类型:转化为bool FALSE|TRUE
    • string和number:将字符串转化成数字,按照普通数学比较

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

特殊语句
  • foreach语句:用于遍历数组,仅能用于数组和对象。每进行一次循环,当前数组元素的值就会被赋值给$value变量(数组指针会逐一地移动),在进行下一次循环时,将看到数组中的下一个值

    • foreach($array as $value){ 要执行的代码; }
  • continue与break

    • 在PHP中break和continue语句都可以用来跳出循环,包括while、do while、for和foreach循环。不同的是continue命令会终止循环体的单次循环,代码继续往下执行下一次循环,而break会终止整个循环体的循环。

    • continue

      for($i=0;$i<10;$i++){if($i=3){continue;		//打印结果:012456789}echo $i;
      }
      
    • break

      for($i=0;$i<10;$i++){if($i=3){break;		//打印结果:012}echo $i;
      }
      
超全局变量
  • 超全局变量是在全部作用域中始终可用的内置变量。PHP中的许多预定义变量都是超全局的,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行global v a r i a b l e ; 就可以访问它们。常用的超全局变量有 variable;就可以访问它们。常用的超全局变量有 variable;就可以访问它们。常用的超全局变量有GLOBALS、$ _SERVER、$ _GET、$ _POST、$ _FILES、$ _COOKIE、$ _SESSION、$ _REQUEST、$ _ENV。//该部分内容详情看https://blog.csdn.net/zhichaosong/article/details/80507516

    • $GLOBALS:

      • $GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。

      • PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。

      • 主要用于在局部范围不可以使用全局变量时,但又需要使用该全局变量,就使用$GLOBALS。

        <?php $x = 75; $y = 25;function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; }addition(); echo $z; 
        ?>
        
    • $ _REQUEST:

      • PHP $_REQUEST 用于收集 HTML 表单提交的数据。可以接受post和get两种方式的值

        //以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至<form>标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_REQUEST 来收集表单中的 input 字段数据:
        <html>
        <body><form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">Name: <input type="text" name="fname"><input type="submit" value="提交"></form><?php $name = $_REQUEST['fname']; echo $name; ?>
        </body>
        </html>
        
    • $ _POST:

      • PHP $_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method=“post”

        //以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至<form>标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_POST 来收集表单中的 input 字段数据:
        <html>
        <body><form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
        Name: <input type="text" name="fname">
        <input type="submit">
        </form><?php 
        $name = $_POST['fname']; 
        echo $name; 
        ?></body>
        </html>
        
    • $ _GET:

      • PHP $_GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method=“get”。

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

        //假设有一个包含参数的超链接HTML页面:
        <html>
        <body><a href="test_get.php?subject=PHP&web=runoob.com">Test $GET</a></body>
        </html>
        //当用户点击链接 "Test $GET", 参数 "subject" 和 "web" 将发送至"test_get.php",你可以在 "test_get.php" 文件中使用 $_GET 变量来获取这些数据。
        以下实例显示了 "test_get.php" 文件的代码:
        <html>
        <body><?php 
        echo "Study " . $_GET['subject'] . " @ " . $_GET['web'];
        ?></body>
        </html>
        
    • $ _SERVER:

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

        //以下实例中展示了如何使用$_SERVER中的元素:
        <?php 
        echo $_SERVER['PHP_SELF'];
        echo "<br>";
        echo $_SERVER['SERVER_NAME'];
        echo "<br>";
        echo $_SERVER['HTTP_HOST'];
        echo "<br>";
        echo $_SERVER['HTTP_REFERER'];
        echo "<br>";
        echo $_SERVER['HTTP_USER_AGENT'];
        echo "<br>";
        echo $_SERVER['SCRIPT_NAME'];
        ?>
        
    • $ _COOKIE:

      • 用于会话控制,cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。

        //①创建Cookie//语法setcookie(name, value, expire, path, domain);//示例
        <?php setcookie("user", "Alex Porter", time()+3600);
        /*创建名为 "user" 的 cookie,把为它赋值 "Alex Porter"。我们也规定了此 cookie 在一	小时后过期*/
        ?><html>
        <body></body>
        </html>//②取回Cookie值
        //示例a:取回了名为 "user" 的 cookie 的值,并把它显示在了页面上
        <?php
        // Print a cookie
        echo $_COOKIE["user"];// A way to view all cookies
        print_r($_COOKIE);
        ?>//示例b:使用 isset() 函数来确认是否已设置了 cookie
        <html>
        <body><?php
        if (isset($_COOKIE["user"]))echo "Welcome " . $_COOKIE["user"] . "!<br />";
        elseecho "Welcome guest!<br />";
        ?></body>
        </html>
        
    • $ _SESSION:

      • 用于会话控制,PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置。Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。

        • 当您运行一个应用程序时,您会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态。

        • 通过在服务器上存储用户信息以便随后使用,PHP session 解决了这个问题(比如用户名称、购买商品等)。不过,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久储存信息,可以把数据存储在数据库中。

        • Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。

          //①开始 PHP Session :/*在您把用户信息存储到 PHP session 中之前,首先必须启动会话。session_start() 函数必须位于 标签之前*/
          <?php session_start(); ?><html>
          <body></body>
          </html>//②存储 和使用Session 变量:
          <?php
          session_start();
          // store session data
          $_SESSION['views']=1;
          ?><html>
          <body><?php
          //retrieve session data
          echo "Pageviews=". $_SESSION['views'];
          ?></body>
          </html>//③终结 Session
          /*如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。*/
          //通过 unset() 函数用于释放指定的 session 变量:
          <?php
          unset($_SESSION['views']);
          ?>/*通过 session_destroy() 函数彻底终结 session,将重置 session,您将失去所有已存储的 session 数据。*/
          <?php
          session_destroy();
          ?>
          
    • $ _ENV:

      • 服务器端环境变量。PHP中的$_ENV是一个包含服务器端环境变量的数组,不同系统不完全一样。
        部分变量示例:
        $_ENV[ ‘HOSTNAME’ ] 服务器的主机名
        $_ENV[ ‘SHELL’ ] 系统 shell

        //$_ENV只是被动的接受服务器端的环境变量并把它们转换为数组元素,你可以尝试直接输出它:
        //输出内容格式清晰,ThinkPHP可以直接用dump()
        var_dump($_ENV);//输出到屏幕
        print_r($_ENV);//输出key-value键值对
        foreach($_ENV as $key=>$val){echo $key.'--------'.$val.'<br>';}
        
    • $ _FILES:

      • 上传文件使用,$_FILES 主要用在当需要上传二进制文件的地方,录入上传一个abc.mp3文件,则服务器端需要获得该文件的相关信息,则通过变量 F I L E S 来取得。 _FILES 来取得。 FILES来取得。_FILES 超级全局变量包含通过POST方法向服务器上传的数据的有关信息。这个超级全局变量与其他的变量有所不同,它是一个二维数组,包含5个元素。
      //前段上传文件示例代码
      /**创建一个文件上传表单
      允许用户从表单上传文件是非常有用的。
      请看下面这个供上传文件的 HTML 表单:**/
      <html>
      <body><form action="upload_file.php" method="post" enctype="multipart/form-data"><label for="file">Filename:</label><input type="file" name="file" id="file" /> <input type="submit" name="submit" value="Submit" /></form>
      </body>
      </html>//后端处理文件示例代码:
      <?php
      if ((($_FILES["file"]["type"] == "image/gif")
      || ($_FILES["file"]["type"] == "image/jpeg")
      || ($_FILES["file"]["type"] == "image/pjpeg"))
      && ($_FILES["file"]["size"] < 20000)){if ($_FILES["file"]["error"] > 0){echo "Return Code: " . $_FILES["file"]["error"] . "<br />";}else{echo "Upload: " . $_FILES["file"]["name"] . "<br />";echo "Type: " . $_FILES["file"]["type"] . "<br />";echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";if (file_exists("upload/" . $_FILES["file"]["name"])){echo $_FILES["file"]["name"] . " already exists. ";}else{move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]);echo "Stored in: " . "upload/" . $_FILES["file"]["name"];}}}
      else{echo "Invalid file";}
      ?>
      

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/294131.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

音视频类App广告变现如何破局,最大化广告变现收益,让应用增收?

音视频App已然成为了我们日常获取、发布和交换信息的重要方式&#xff0c;在音视频行业不断的拓展中&#xff0c;用户的渗透率提升。 据数据显示&#xff0c;我国网络视听用户的规模已达9亿人次&#xff0c;网民使用率也突破了90%。庞大的市场规模和用户需求吸引了大批开发者和…

云工作流 CloudFlow 重磅发布,流程式开发让云上应用构建更简单

为了让企业和开发者更快速、便捷地进行云上开发&#xff0c;阿里云重磅发布云工作流&#xff08;CloudFlow&#xff09;&#xff0c;它是一款强大的面向开发者的流程编排开发工具&#xff0c; 全托管、高并发、高可用&#xff0c;帮助用户简化和自动化复杂的云上业务流程和工作…

LTO-3 磁带机种草终于是用上了

跑来跑去&#xff0c;买了不少配件&#xff0c;终于是把这磁带机给用上了&#xff0c;已经备份好了300 多 GB 的数据。 我们用了 NAS 的数据压缩功能&#xff0c;把需要备份的文件用 NAS 压缩成一个 Zip 文件&#xff0c;如果你可以 tar 的话也行。 这样传输速度更快&#xf…

论文阅读——llava

Visual Instruction Tuning LLaVA 指令智能体分为两类&#xff1a;端到端的&#xff0c;通过LangChain[1]/LLM[35]协调各种模型的系统。 数据集生成用GPT辅助生成的&#xff0c;具体不写了。 模型结构&#xff1a; input image Xv LLM&#xff1a;Vicuna visual encoder&a…

【大数据】NiFi 中的 Controller Service

NiFi 中的 Controller Service 1.Service 简介1.1 Controller Service 的配置1.1.1 SETTING 基础属性1.1.2 PROPERTIES 使用属性1.1.3 COMMENT 页签 1.2 Service 的使用范围 2.全局参数配置3.DBCPConnectionPool 的使用样例4.在 ExcuseGroovyScript 组件中使用 Service 1.Servi…

华为---登录USG6000V防火墙---console、web、telnet、ssh方式登录

目录 一、环境搭建 二、第一次登录USG6000V防火墙&#xff0c;即通过console方式登录 三、用户配置 四、web登录USG6000V防火墙 1. 用web创建的用户通过web方式登录USG6000V防火墙 2. 命令行创建的用户通过web方式登录USG6000V防火墙 五、ssh方式登录USG6000V防火墙 1. 用…

在线时间戳是什么?

在线时间戳是基于国际标准结合PKI密码技术及数字签名技术&#xff0c;对电子数据产生的精确时间进行固证&#xff0c;为电子数据提供时间证明的一种在线服务。时间戳技术使用数字签名技术对包含原始文件信息、签名参数、签名时间等信息构成的对象进行数字签名。访问沃通CA官网了…

通过 Higress Wasm 插件 3 倍性能实现 Spring-cloud-gateway 功能

作者&#xff1a;韦鑫&#xff0c;Higress Committer&#xff0c;来自南京航空航天大学分布式系统实验室 导读&#xff1a;本文将和大家一同回顾 Spring Cloud Gateway 是如何满足 HTTP 请求/响应转换需求场景的&#xff0c;并为大家介绍在这种场景下使用 Higress 云原生网关的…

日志服务 SLS 深度解析:拥抱云原生和 AI,基于 SLS 的可观测分析创新

云布道师 10 月 31 日&#xff0c;杭州云栖大会上&#xff0c;日志服务 SLS 研发负责人简志和产品经理孟威等人发表了《日志服务 SLS 深度解析&#xff1a;拥抱云原生和 AI&#xff0c;基于 SLS 的可观测分析创新》的主题演讲&#xff0c;对阿里云日志服务 SLS 产品服务创新以…

Qt的简单游戏实现提供完整代码

文章目录 1 项目简介2 项目基本配置2.1 创建项目2.2 添加资源 3 主场景3.1 设置游戏主场景配置3.2 设置背景图片3.3 创建开始按钮3.4 开始按钮跳跃特效实现3.5 创建选择关卡场景3.6 点击开始按钮进入选择关卡场景 4 选择关卡场景4.1场景基本设置4.2 背景设置4.3 创建返回按钮4.…

redis主从复制(在虚拟机centos的docker下)

1.安装docker Docker安装(CentOS)简单使用-CSDN博客 2.编辑3个redis配置 cd /etc mkdir redis-ms cd redis-ms/ vim redis6379.conf vim redis6380.conf vim redis6381.conf# master #端口号 port 6379#设置客户端连接后进行任何其他指定前需要使用的密码 requirepass 12345…

从0到1部署gitlab自动打包部署项目

本文重点在于配置ci/cd打包 使用的是docker desktop 第一步安装docker desktop Docker简介 Docker 就像一个盒子&#xff0c;里面可以装很多物件&#xff0c;如果需要某些物件&#xff0c;可以直接将该盒子拿走&#xff0c;而不需要从该盒子中一件一件的取。Docker中文社区、…