【php快速上手(四)】

news/2024/5/1 9:38:40/文章来源:https://blog.csdn.net/qq_38641481/article/details/137611489

目录

  • PHP快速上手(四)
    • PHP 类型比较
      • 1.松散比较(Loose Comparison)
      • 2.严格比较(Strict Comparison)
      • 3.类型转换
    • PHP 常量
    • PHP字符串函数
      • 1. 字符串长度和截取
      • 2. 字符串查找和替换
      • 3. 字符串转换和格式化
      • 4. 字符串分割和连接
      • 5. 字符串格式验证
      • 6. 其他字符串函数

PHP快速上手(四)

PHP 类型比较

在 PHP 中,类型比较是一个重要的概念,因为 PHP 是一种弱类型语言,意味着变量的类型不是严格定义的,而是根据赋值来确定的。在进行类型比较时,需要考虑到变量的类型转换。以下是 PHP 中类型比较的一些常见情况:

1.松散比较(Loose Comparison)

松散比较允许比较不同类型的值,PHP 会尝试将变量转换为相同类型后再进行比较。使用双等号 == 来进行松散比较。

Copy code
$num = 10;
$str = "10";if ($num == $str) {echo "Equal";
} else {echo "Not Equal";
}

// 输出:Equal
在上面的示例中,尽管 $num 是整数类型而 $str 是字符串类型,但它们的值是相等的,因此 == 松散比较会返回 true。

2.严格比较(Strict Comparison)

严格比较要求变量的值和类型都相等,使用三个等号 === 来进行严格比较。

$num = 10;
$str = "10";if ($num === $str) {echo "Equal";
} else {echo "Not Equal";
}

// 输出:Not Equal
在上面的示例中,=== 严格比较要求两个变量的值和类型都相等,由于 $num 是整数类型而 $str 是字符串类型,因此严格比较返回 false。

3.类型转换

在 PHP 中,变量在进行比较时会根据需要进行自动类型转换。例如,字符串和数字之间的比较,字符串会尝试转换为数字类型。这种类型转换可能会导致意外的结果,因此在比较时应谨慎使用。

$str = "10";
$num = 10;if ($str == $num) {echo "Equal";
} else {echo "Not Equal";
}

// 输出:Equal
在上面的示例中,尽管 $str 是字符串类型,但它的值可以转换为数字类型,因此 == 松散比较会返回 true。

PHP 常量

  • 设置常量
    使用define函数bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
    该函数有三个参数:
    1. name:必选参数,常量名称,即标志符。
    2. value:必选参数,常量的值。
    3. case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感,默认是大小写敏感的。
      注意:自 PHP 7.3.0 开始,定义不区分大小写的常量已被弃用。从 PHP 8.0.0 开始,只有 false 是可接受的值,传递 true 将产生一个警告。
  • 常量是全局的
    常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。
    <?php
    define("GREETING", "欢迎访问 www.baidu.com");function test() {echo GREETING;
    }test();    // 输出 "欢迎访问 www.baidu.com"
    ?>
    

PHP字符串函数

PHP 提供了许多用于处理字符串的内置函数,这些函数可以用于字符串的创建、拆分、替换、格式化等操作。以下是一些常用的 PHP 字符串函数:

1. 字符串长度和截取

strlen($string): 返回字符串的长度。
str_word_count($string) 函数对字符串中的单词进行计数:
substr($string, $start, $length): 返回字符串的子串,从指定位置开始并具有指定长度。
mb_strlen($string, $encoding): 返回多字节字符串的长度(考虑字符编码)。

2. 字符串查找和替换

strpos($haystack, $needle): 返回子串在字符串中第一次出现的位置,不区分大小写。
str_replace($search, $replace, $subject): 将字符串中的部分内容替换为新的内容。
stristr($haystack, $needle): 类似于 strpos,但是不区分大小写。

3. 字符串转换和格式化

strtolower($string): 将字符串转换为小写。
strtoupper($string): 将字符串转换为大写。
ucfirst($string): 将字符串的首字母转换为大写。
ucwords($string): 将字符串中每个单词的首字母转换为大写。

4. 字符串分割和连接

explode($delimiter, $string): 将字符串按照指定的分隔符拆分成数组。
implode($glue, $pieces): 将数组元素连接成字符串,以指定的分隔符分隔。
join($glue, $pieces):implode() 函数功能相同。

5. 字符串格式验证

trim($string): 去除字符串两端的空格或其他字符。
ltrim($string): 去除字符串左端的空格或其他字符。
rtrim($string): 去除字符串右端的空格或其他字符。
ctype_digit($string): 检查字符串是否仅包含数字字符。
ctype_alpha($string): 检查字符串是否仅包含字母字符。

6. 其他字符串函数

strrev($string): 返回字符串的逆序。
str_shuffle($string): 将字符串中的字符随机打乱。
urlencode($string):URL 进行编码。
urldecode($string):URL 进行解码。

注意:更多字符串函数请参考链接:字符串函数表

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

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

相关文章

milvus search api的数据结构

search api的数据结构 此api的功能是向量相似度搜索(vector similarity search) 一个完整的search例子: 服务端collection是一个hnsw类型的索引。 import random from pymilvus import (connections,Collection, )dim 128if __name__ __main__:connections.connect(alias…

springboot websocket 持续打印 pod 日志

springboot 整合 websocket 和 连接 k8s 集群的方式参考历史 Java 专栏文章 修改前端页面 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>Java后端WebSocket的Tomcat实现</title><script type"text/javasc…

A股企业数据要素利用水平数据集(2001-2022年)

参照史青春&#xff08;2023&#xff09;的做法&#xff0c;团队对上市公司-数据要素利用水平进行测算。统计人工智能技术、区块链技术、云计算技术、大数据技术、大数据技术应用五项指标在企业年报中的披露次数&#xff0c;求和后衡量数据要素投入水平。 一、数据介绍 数据名…

贪心算法|1005.K次取反后最大化的数组和

力扣题目链接 class Solution { static bool cmp(int a, int b) {return abs(a) > abs(b); } public:int largestSumAfterKNegations(vector<int>& A, int K) {sort(A.begin(), A.end(), cmp); // 第一步for (int i 0; i < A.size(); i) { // 第二步if…

力扣HOT100 - 56. 合并区间

解题思路&#xff1a; class Solution {public int[][] merge(int[][] intervals) {// 先按照区间起始位置排序Arrays.sort(intervals, (v1, v2) -> v1[0] - v2[0]);int[][] res new int[intervals.length][2];int idx -1;for (int[] interval : intervals) {//直接加入的…

PCF8591(ADDA转换芯片)

工具 1.Proteus 8 仿真器 2.keil 5 编辑器 原理图 讲解 PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行IC总线接口。PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程&#xff0c;允许在同个I2C总线上接…

【实战解析】YOLOv9全流程训练至优化终极指南

【实战解析】YOLOv9全流程训练至优化终极指南 0.引言1.环境准备2.数据预处理&#xff08;1&#xff09;数据准备&#xff08;2&#xff09;按比例划分数据集&#xff08;3&#xff09;xml转txt脚本&#xff08;4&#xff09;配置文件 3.模型训练&#xff08;1&#xff09;单GPU…

【UE5 C++】各个头文件的含义

#pragma once 预处理程序指令 作用&#xff1a;保护同一个文件不会被多次包含&#xff0c;使得头文件只会被编译一次&#xff0c; #include “CoreMinimal.h” 包含了一套来自UE4的核心编程环境的普遍存在类型 #include “GameFramework/GameModeBase.h” 基于GameModeBas…

如何训练自己的ChatGPT?需要多少训练数据?

近年&#xff0c;聊天机器人已经是很常见的AI技术。小度、siri、以及越来越广泛的机器人客服&#xff0c;都是聊天机器人的重要适用领域。然而今年&#xff0c;ChatGPT的面世让这一切都进行到一个全新的高度&#xff0c;也掀起了大语言模型&#xff08;LLM&#xff09;的热潮。…

SpringBoot和Vue2项目配置https协议

1、SpringBoot项目 ① 去你自己的云申请并下载好相关文件&#xff0c;SpringBoot下载的是Tomcat&#xff08;默认&#xff09;&#xff0c;Vue2下载的是Nginx ② 将下载的压缩包里面的.pfx后缀文件拷贝到项目的resources目录下 ③ 编辑配置文件 &#xff08;主要是框里面的内…

Java项目:基于SSM+vue框架实现的人力资源管理系统设计与实现(源码+数据库+毕业论文+任务书)

一、项目简介 本项目是一套基于SSM框架实现的人力资源管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、功能…

线程池的方式爬虫

<!--爬虫仅支持1.8版本的jdk--> <!-- 爬虫需要的依赖--> <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.2</version> </dependency><!-- 爬虫需…

Spring学习(四)反射、AOP、JUnit

文章目录 Java反射回顾 AOP代理模式AOP概念及术语概述术语作用 基于注解的AOP步骤依赖配置文件切入点表达式语法切面类重用切入点表达式切面的优先级 基于XML的AOP 单元测试JUnit引入依赖JUnit5 Java反射 Spring框架的IoC基于java反射机制实现&#xff0c;反射是指在运行状态中…

antd+Vue 3实现table行内upload文件图片上传【超详细图解】

目录 一、背景 二、效果图 三、代码 一、背景 一名被组长逼着干前端的苦逼后端&#xff0c;在一个晴天霹雳的日子&#xff0c;被要求前端订单产品实现上传产品图片并立刻回显图片。 二、效果图 三、代码 <template><a-table :dataSource"dataSource" :c…

CTF之矛盾

这一题就是php的弱比较“” 这里要求输入的不是数字&#xff0c;并且输入要为1才打印flag 那我们就输入一个1后面接随便什么字符&#xff0c;因为php的弱比较将字符与数字进行比较的时候&#xff0c;会把字符转换成数字再比较&#xff0c;当转换到字符时后面便都为空了 flag{…

Android如何实现一个应用位于前台时全局页面每隔三分钟弹出一次一天最多弹出5次的GroMore半插屏广告,处于付费页和后台时停止

首先我们需要添加一个全局的Application public class MyApp extends LitePalApplication {private static final String TAG "MyApp";private static Context mContext;private boolean isManageMent;public static String oaid;Overridepublic void onCreate() {…

【opencv】示例-epipolar_lines.cpp 对极线

这段代码总的功能是使用OpenCV库进行立体视觉的估计。它从命令行读取两个图像文件名&#xff0c;使用SIFT算法检测关键点并计算这些点的描述子&#xff0c;接着通过FLANN库进行快速近似最近邻搜索来找到匹配的关键点。然后使用RANSAC方法计算基础矩阵&#xff0c;找到内点&…

Python中大的一把锁

今天可以来讲解下GIL是个什么了。 GIL为什么是Python中大的一把锁&#xff1f; GIL是Global Interpreter Lock的缩写&#xff0c;翻译过来就是全局解释器锁。 从字面上去理解&#xff0c;它就是锁在解释器头上的一把锁&#xff0c;它使Python代码运行变得有序。 假如有一段…

基于FPGA轻松玩转AI

启动人工智能应用从来没有像现在这样容易&#xff01;受益于像Xilinx Zynq UltraScale MPSoC 这样的FPGA&#xff0c;AI现在也可以离线使用或在边缘部署、使用.可用于开发和部署用于实时推理的机器学习应用&#xff0c;因此将AI集成到应用中变得轻而易举。图像检测或分类、模式…

关于hive启动的相关问题记录

问题&#xff1a;初始化hive元数据报错 [atguiguhadoop102 software]$ schematool -initSchema -dbType mysql -verboseError: Table CTLGS already exists (state42S01,code1050) Closing: 0: jdbc:mysql://hadoop102:3306/metastore?useSSLfalse org.apache.hadoop.hive.me…