吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1820|回复: 16
收起左侧

[其他转载] 【PHP】【笔记】PHP学习 整形,浮点型,字符串,变量解析

[复制链接]
gentledream 发表于 2020-8-4 17:05
本帖最后由 gentledream 于 2020-8-4 17:08 编辑

PHP最美,我爱PHP整形integer整形可以是十进制,十六进制,八进制,二进制,前面可以加上正负号。八进制前加0,十六进制加0x,二进制加0b
[PHP] 纯文本查看 复制代码
$a = [
    1234,        // 整数
    -123,        // 负数
    0123,        // 八进制 83
    0x1A,        // 十六进制 26
    0b11111111   // 二进制 255
];
for($i=0;$i<=4;$i++){
    var_dump($a[$i]);
}

32位平台下最大约为21亿,64位平台为9E18。PHP不支持无符号integer。给定的数超出了integer的返回,会解释为为float。计算后超出会返回float。64位系统下:
[PHP] 纯文本查看 复制代码
$num = 9223372036854775807;
var_dump($num);
// int(9223372036854775807)
$num = 9223372036854775808;
var_dump($num);
// float(9.2233720368548E+18)

转换为integer,可以用(int)或(integer)或者函数intval()。PHP没有整除运算符,要舍掉小数,可使用前面三种方法。
前辈的提示1.数字中的0是八进制标记,但字符串中的不是。
[PHP] 纯文本查看 复制代码
$x = 0123;          // 83
$y = "0123"+0;     // 123
2.PHP7开始后,函数intdiv()可以整除作用。
[PHP] 纯文本查看 复制代码
echo intdiv(10,3); // 3
3.字符串中,只有当开头为数字时,才能转换为整型。
[PHP] 纯文本查看 复制代码
var_dump((int) "123");      // int(123)
var_dump((int) "123txt");   // int(123)
var_dump((int) "txt123");   // int(0)
var_dump((int) "txt123txt");// int(0)
var_dump((int) "123txt456txt");// int(123)

浮点型float浮点型(float)也叫浮点数(float),双精度数(double)或实数(real)。可以用以下任意一种表示。
[PHP] 纯文本查看 复制代码
$a = 1.234; 
$b = 1.2e3; 
$c = 7E-10;
前辈的提示1.比较时
[PHP] 纯文本查看 复制代码
$x = 8 - 6.4;  // 1.6
$y = 1.6;
var_dump($x == $y); // false
var_dump(round($x, 2) == round($y, 2)); // true
// This happens probably because $x is not really 1.6, but 1.599999.. and var_dump shows it to you as being 1.6.
// 这可能因为$x不是真1.6而是1.5999999...,但var_dump显示它是1.6

字符串string一个字符串string就是由一系列字符组成,每个字符等同于一个字节。string最大可以2GB。字符串有四种定义方式:
  • 单引号
  • 双引号
  • heredoc语法结构
  • nowdoc语法结构
单引号:
[PHP] 纯文本查看 复制代码
$a = 1;
echo 'adsadsasa';
// adsadsasa
echo 'abcd
dqweqw';
// abcd dqweqw
echo 'I\'m Peter';
// I'm Peter
echo 'C:\Windows';
// C:\Windows
echo 'C:\\Windows';
// C:\Windows
echo 'You asd \n asd';
// You asd \n asd
echo 'a is $a';
// a is $a

在单引号内定义一个单引号,需要在’前加\。反斜线要使用\\。其他如\r \n等都没有特殊效果,只是字符本身。不像双引号中变量和转义序列会被替换。
序列含义
\n换行(ASCII 字符集中的 LF 或 0x0A (10))
\r回车(ASCII 字符集中的 CR 或 0x0D (13))
\t水平制表符(ASCII 字符集中的 HT 或 0x09 (9))
\v垂直制表符(ASCII 字符集中的 VT 或 0x0B (11))(自 PHP 5.2.5 起)
\eEscape(ASCII 字符集中的 ESC 或 0x1B (27))(自 PHP 5.4.0 起)
\f换页(ASCII 字符集中的 FF 或 0x0C (12))(自 PHP 5.2.5 起)
\\反斜线
\$美元标记
\双引号
\[0-7]{1,3}符合该正则表达式序列的是一个以八进制方式来表达的字符
\x[0-9A-Fa-f]{1,2}符合该正则表达式序列的是一个以十六进制方式来表达的字符

变量解析当字符串使用string或者heredoc语法时才会进行解析。解析有两种语法规则,一是简单,二是复杂简单解析用最少的代码在字符串嵌入一个变量一个array的值一个object的属性
[PHP] 纯文本查看 复制代码
$a = 'Peter';
$b = 'Kitty';
$arr = ['Like'];
class a
{
    public $very = 'very';
}
$class = new a();
echo "$a $class->very $arr[0] $b";
// Peter very Like Kitty

复杂解析用花括号{}
[PHP] 纯文本查看 复制代码
$arr = [
    'name1' => ['Peter'],
    'how'   => 'very'
];
class a{
    public function getname(){
        return 'Kitty';
    }
}
$class = new a();
echo "{$arr['name1'][0]} is {$arr['how']} like {$class->getname()}";
// Peter is very like Kitty


取,修改字符串string中的字符从0开始下标,用类似数组中的[]可以对其进行获取和修改(也可以用花括号访问,比如$str{1})。
[PHP] 纯文本查看 复制代码
$str = 'I love the sea';
echo $str[0]; // l
echo $str[4]; // v
$str[strlen($str)-1] = 'e';
echo $str;
// I love the see

heredoc语法结构表达字符串的形式为:<<<,然后跟上开始标记符,换行,字符串本身,然后换行,结束标记符。【结束标记符前不可有缩进】
[PHP] 纯文本查看 复制代码
$str = <<<Zifu
abcde
Zifu;
echo $str; // abcde

要注意,标记符像变量一样的命名法。开始和结束标记符要一致。结束标记符行除了本身和分号外不得有任何字符。复杂示例(变量解析):
[PHP] 纯文本查看 复制代码
$a = [
    'name1' => ['peter'],
    'how'   => 'like'
];
class b{
    public function getname(){
        return 'kitty';
    }
}
$class = new b();
$str = <<<AAA
{$a['name1'][0]} is very {$a['how']} {$class->getname()}
AAA;
echo $str;
// peter is very like kitty 
在参数中的示例
[PHP] 纯文本查看 复制代码
var_dump(array(<<<AAA
I LOVE YOU!
AAA
));
// array(1) { [0]=> string(11) "I LOVE YOU!" }
heredoc结构中使用双引号
[PHP] 纯文本查看 复制代码
$str = <<<"AAA"
I LOVE YOU
AAA;
echo $str;
// I LOVE YOU

nowdoc 结构像heredoc结构那样类似于双引号,nowdoc结构类似于单引号。他不会进行解析。定义规则则是在开始标记符处加上单引号,其他同heredoc一样。
[PHP] 纯文本查看 复制代码
$str = <<<'AAA'
I LOVE YOU
AAA;
echo $str;
// I LOVE YOU
字符串运算符有两种运算符 . 和 .= 。前者为两个字符串相连。后者为简写。
[PHP] 纯文本查看 复制代码
$a = 'I love ';
echo $a.'you'; // I love you
$a .= 'you';
echo $a; // I love you

免费评分

参与人数 2吾爱币 +6 热心值 +2 收起 理由
zpy2 + 1 + 1 我很赞同!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| gentledream 发表于 2020-8-4 17:14
ivanlmy 发表于 2020-8-4 17:13
能讲下用什么环境么?怎么安装?在哪了写这些代码啊~

xp.cn网站里面下载phpstudy
然后编辑器可以下载visualstudiocode
 楼主| gentledream 发表于 2020-8-8 15:18
anangz_com 发表于 2020-8-8 14:22
你看的谁的教程?可以分享一下吗?

我看的官网手册学的 https://www.php.net/manual/zh/index.php
ivanlmy 发表于 2020-8-4 17:13
能讲下用什么环境么?怎么安装?在哪了写这些代码啊~
oneseo 发表于 2020-8-4 17:15
现在还学PHP啊...
 楼主| gentledream 发表于 2020-8-4 17:17
oneseo 发表于 2020-8-4 17:15
现在还学PHP啊...

我爱PHP 我爱网站
头像被屏蔽
偶尔平凡 发表于 2020-8-4 17:39
提示: 作者被禁止或删除 内容自动屏蔽
anangz_com 发表于 2020-8-4 21:14
可以一起学习吗?自己一个人学不下去!~~~
 楼主| gentledream 发表于 2020-8-4 21:17
anangz_com 发表于 2020-8-4 21:14
可以一起学习吗?自己一个人学不下去!~~~

可以呀!道友!
Didor 发表于 2020-8-5 05:28
下个月我也可能要开始学PHP了,先mark住,谢谢楼主~
 楼主| gentledream 发表于 2020-8-5 06:14
Didor 发表于 2020-8-5 05:28
下个月我也可能要开始学PHP了,先mark住,谢谢楼主~

嗯 加油 PHP最美
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 01:36

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表