php学习笔记之--php变量与常量
php变量与常量
一、目录
第一章 变量
1.1变量的声明
1.2变量的命名
1.3变量的数据类型
1.4变量数据类型之间的转换
1.5与变量和类型有关的一些常用函数
第二章 常量
2.1常量的声明与使用
2.1预定义常量和魔术常量
第一章 变量
1.1变量的声明
1.变量以$开头定义,由$和标识符组成,标识符就是变量的名称。(函数和类的名称也是标识符)
$变量名=值
1.2变量的命名
1. 变量前一定要使用”$”, 声明和使用都要有这个符号。
2. 可以是任意长度,有任何字母、数字、下划线组成;但是不能以数字开头
3.不能使用PHP的运算符号+ - * / % & .
4. PHP可以使用系统关键字作为变量名
5. PHP变量区分大小写,(只有变量和常l量区分大小写,其它不区分)
6.变量名称一定要有意义,可以使用英文单词,也可以使用汉语拼音。
7.$aaaBbbCcc 变量的命名风格,驼峰法。
注意:可变变量(一个变量的变量名可以动态设置和使用)
变量的引用赋值(使用一个“&”符号加到将要赋值的变量前面(源变量))
数组与类使用PHP的可变变量名的注意
可以像C++那样, 在变量的前面加上&, 例如:$a = &$b 对一个变量进行值传递。
1.3变量的数据类型
1.PHP是弱类型的语言,变量的类型由存储的值决定
2.PHP中共有8种类型
四种标量类型:
整 型:int integer
布尔型:bool boolean
浮点型:float, double, real
字符串:string
两种复合类型
数组: array
对象: object
两种特殊类型
资源类型:resource
空类型:null
注:
给一个变量赋值为0123,但是输出该变量的值总是为其他数字,请问这是什么问题?PHP 解释器会把以0开始的数字当做是八进制的,所以它的值会变成八进制的。
$a = 0.2+0.7;$b = 0.9;var_dump($a == $b);打印出的结果是:bool(false)。也就是说在这里 0.2+0.7 的计算结果与 0.9 并不相等。请问这个问题如何解决?
PHP官方手册说明:显然简单的十进制分数如 0.2 不能在不丢失一点点精度的情况下转换为内部二进制的格式。这和一个事实有关,那就是不可能精确的用有限位数表达某些十进制分数。例如,十进制的 1/3 变成了 0.3333333...。我们将上面的变量用双精度格式打印出来:$a = 0.2+0.7;$b = 0.9;printf("%0.20f", $a);echo '
';printf("%0.20f", $b);
输出结果如下:
0.899999999999999911180.90000000000000002220
显然在这里,实际上作为浮点型数据,其精度已经损失了一部分,达不到完全精确。所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。需要说明的是,这不是PHP的问题,而是计算机内部处理浮点数的问题!在 C、JAVA 等语言中也会遇到同样的问题。
所以要比较两个浮点数,需要将其控制在我们需要的精度范围内再行比较,因此使用 bcadd() 函数来对浮点数想加并进行精度转换(为字符串):
var_dump(bcadd(0.2,0.7,1) == 0.9); // 输出:bool(true) 浮点数取整
在《PHP 取整函数 ceil 与 floor》一文中,曾有例子:
经过上面对浮点数计算的探讨,知道这是浮点数计算结果不完全精确造成的:
经过上面对浮点数计算的探讨,知道这是浮点数计算结果不完全精确造成的,因此使用 round() 函数处理一下即可:
虽然 round() 函数是按照指定的精度进行四舍五入,但保留小数点后一位,对我们的取整结果是没影响的。
1.4变量数据类型之间的转换
一种是强制转换:
1.setType(变量, 类型); //这个函数将原变量的类型改变
2.$a=(int)"123abc"; //在赋值前使用(类型)的形式, 不会改变原变量的类型
3.$变量=intval(变量或值); //形成一个新的变量,原有的变量不变
注意:
1.bool型的转换
2.整型在内存中占4个字节32位 最大2.147e9
3.浮点型在内存中占8个字节64位
4.整型与浮点型之间转换时的溢出/精度损失
5.字符串与整型和浮点型之间的转换
一种是自动转换:
最常用的方式,因为这种我们开发时不用去管理类型,变量会根据运行环境自动转换
4.PHP中数据类型转换中的注意
$str="100.123abc";
setType( $str,bool);
var_dump( $str);
整型 为4个字节2个字32位2.147e9
浮点型 为8个字节4个字64位
$float1=123.456;
$float2=2.147e9;
$int1=(int) $float1;
$int2=(int) $float3;
var_dump( $int1);
var_dump( $int2);
(int)(10*(0.7+0.1)) // 结果为7
--------
$amount = 19.99 * 100;
printf("%.13f", $amount);
---------
$num=-1000;
print( $num."\n");
$i_str= sprintf("%u", $num);
print( $i_str."\n");
$i1= intval( $i_str);
print( $i1."\n");
$i2= intval( floatval( $i_str));
print($i2."\n");
输出结果
-1000
4294966296
2147483647
-1000
整型=浮点型 注意:溢出/精度损失
5.字符串转换为整型和浮点
$a="100abc"; $a="a100bc";
$a="abc"; $a="100.123zbc"
$a="100eabc"; $a="100e5abc"
$a=10;
$b="100abc";
$c= true;
$d=12.34;
$sum= $a+ $b+ $c+ $d;
var_dump($sum);
1.5与变量和类型有关的一些常用函数
isset(); //测试变量是否存在,返回的值值如果是null,也表示空
empty(); //判断一个变量是否为空, “” null
unset();
setType();
getType();
var_dump();
变量类型测试函数:
is_bool()
is_int() is_integer() is_long()
is_string()
is_float() is_double()is_real()
is_array()
is_object()
is_resource()
is_null()
is_scalar()
is_numberic()
is_callable()
第二章 常量
2.1常量的声明与使用
1.常量是一个简单值的标识符 2.常量定义后不能再改变他的值,也不能使用unset()取消 3.常量可以不用理会变量范围的规则而在任何地方都可以定义和访问 4.声明常量使用define("常量名",值); 5.常量声明名在声明和使用都不使用"$" 6.常量名称习惯都使用大写 7.常量的值只能用标量类型(int, float, bool, string) 8.常量一定要在声明时就给值 9.defined("常量"); //查看某个常量是否存在
2.2预定义常量和魔术常量
$_GET[];
$_POST[];
$_REQUEST[];
$_COOKIE[];
$_SESSION[];
$_FILES[]; //获取上传表单数据
$_SERVER[];
$_ENV[];

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

在PHP中,應使用password_hash和password_verify函數實現安全的密碼哈希處理,不應使用MD5或SHA1。1)password_hash生成包含鹽值的哈希,增強安全性。 2)password_verify驗證密碼,通過比較哈希值確保安全。 3)MD5和SHA1易受攻擊且缺乏鹽值,不適合現代密碼安全。

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。
