概要
PHP は 8 つのプリミティブ データ型をサポートします
4 つのスカラー型:
boolean(布尔型)integer(整型)float(浮点型,也称作 double)string(字符串)
2 つの複合型:
array(数组)object(对象)
最後に 2 つの特別な型:
resource(资源)NULL(无类型)
実際には double と float は同じです。歴史的な理由により、これらは2 つの名前が同時に存在します。
変数の型は通常、プログラマによって設定されるのではなく、変数が使用されるコンテキストに基づいて実行時に PHP によって決定されます。
変数の型を検出するvar_dump() は変数に関する関連情報を出力する
gettype() は変数の型を取得する
<?phpclass foo {}function fn () {}$a = true;$b = 2;$c = 3.2;$d = 'hello';$e = ['a', 'b'];$f = new foo;var_dump($a); // bool(true)var_dump($b); // int(2)var_dump($c); // float(3.2)var_dump($d); // string(7) "hello"var_dump($e); // array(2) { [0]=> string(1) "a" [1]=> string(1) "b" }var_dump($f); // object(foo)#1 (0) { }var_dump(fn); // string(2) "fn"echo '<br>';echo gettype($a); // booleanecho gettype($b); // integerecho gettype($c); // doubleecho gettype($d); // stringecho gettype($e); // arrayecho gettype($f); // objectecho gettype(fn); // string?>
返される文字列は変更する必要がある可能性があるため、特定の型をテストするために gettype() を使用しないでください将来のバージョン。さらに、文字列比較が含まれるため、実行速度が遅くなります。 代わりに is_* 関数を使用してください
is_bool()is_integer()is_float()is_numeric()is_string()is_scalar() is_array()is_object()is_resource()is_null()function_exists() // 函数是否存在method_exists() // 某对象的方法是否存在Boolean ブール型
TRUE と FALSE は大文字と小文字を区別しません
Boolean への自動型変換
自動型変換が boolean の場合、次の値は FALSE とみなされます
布尔值 FALSE 本身整型值 0(零)浮点型值 0.0(零)空字符串,以及字符串 "0"不包括任何元素的数组不包括任何成员变量的对象(仅 PHP 4.0 适用)特殊类型 NULL(包括尚未赋值的变量)从空标记生成的 SimpleXML 对象Integer 整数型
To use 8 進表現の場合は、数値の前に 0 (ゼロ) を追加する必要があります
16 進表現を使用するには、数値の前に 0x を追加する必要があります
2 進表現を使用するには、数値の前に 0b を追加する必要があります
PHP 5.4 以降では、2 進表現の場合は整数.0 現在利用可能です
整数の語長はプラットフォームに依存しますが、通常の最大値は約 20 億 (32 ビット符号付き) です。 64 ビット プラットフォームでの最大値は通常約 9E18 です
PHP は符号なし整数をサポートしていません
整数 値の語長は定数 PHP_INT_SIZE で表すことができます。PHP 4.4.0 および PHP 5.0.5 以降、最大値は 9E18 です。値は定数 PHP_INT_MAX で表すことができます。
整数オーバーフロー
を表します指定された数値が整数の範囲を超える (つまり、整数オーバーフローが発生する) 場合、浮動小数点として解釈されます。同様に、演算結果が整数の範囲を超える場合も float を返します
整数への自動型変換
ブール値からの変換
FALSE は 0 (ゼロ)、TRUE は 1 (1) を生成します
浮動小数点からの変換
浮動小数点から整数への変換の際、切り捨てとなります。
文字列から変換
文字列に「.」、「e」、または「E」が含まれておらず、その数値が整数型(PHP_INT_MAX で定義されている)の範囲内にある場合、文字列は次のように使用されます値を取得するための整数。それ以外の場合はすべて、値は浮動小数点数として扱われます。
<?php $foo = 1 + "10.5"; // $foo is float (11.5)$foo = 1 + "-1.3e3"; // $foo is float (-1299)$foo = 1 + "bob-1.3e3"; // $foo is integer (1)$foo = 1 + "bob3"; // $foo is integer (1)$foo = 1 + "10 Small Pigs"; // $foo is integer (11)$foo = 4 + "10.2 Little Piggies"; // $foo is float (14.2)$foo = "10.0 pigs " + 1; // $foo is float (11)$foo = "10.0 pigs " + 1.0; // $foo is float (11) ?>Float 浮動小数点型
浮動小数点数の語長はプラットフォーム依存
0.1や0.7など10進法で正確に表現できる有理数は、仮数部がいくらあっても正確に表現できない内部で使用されるバイナリ システムによって表現されるため、1 つを失わずに表現することはできません。 ポイントツーポイント精度でバイナリ形式に変換します。これは、混乱を招く結果につながる可能性があります。たとえば、floor((0.1+0.7)*10) は、通常、結果の内部表現が実際には 7.9999999999999991118 のようなものであるため、期待される 8 ではなく 7 を返します…
したがって、浮動小数点の結果を決して信頼しないでください。最後の桁まで正確であり、2 つの浮動小数点数が等しいかどうかを比較することはありません
本当に高い精度が必要な場合は、任意精度の数学関数または GMP 関数を使用する必要があります。
NAN
特定の数学演算は、定数 NAN で表される結果を生成します。この結果は、浮動小数点演算で未定義または表現できない値を表します
NAN は、それ自体を含む他の値と比較すべきではなく、is_nan() を使用してチェックする必要があります
文字列 String文字列は 4 つの方法で表現できます
单引号双引号heredoc 语法结构nowdoc 语法结构(自 PHP 5.3.0 起)
文字文字列内の文字列は、0 から始まり、対応する数値を含める配列構造と同様の角かっこを使用する添字によってアクセスおよび変更できます
Heredoc、Nowdoc
Heredoc の構造は、二重引用符のない二重引用符で囲まれた文字列のようなものです
最後に引用された識別子は行の最初の列にある必要があり、識別子の命名は他のタグと同じ PHP ルールに従う必要があります。文字、数字、アンダースコアのみを含めることができ、文字と文字で始まる必要があります。アンダースコア。
$str = <p>Nowdoc 構造は一重引用符のない一重引用符付き文字列のようなものです </p> <pre class="brush:php;toolbar:false">$str = <h2 id="エスケープ">エスケープ</h2> <p>文字列が一重引用符 (') で囲まれている場合、一重引用符 (') とバックスラッシュのみをエスケープできます ()</p> <p>文字列の場合二重引用符 (") で囲まれている場合、PHP は次の特殊文字を解析します</p>
\n | 换行(ASCII 字符集中的 LF 或 0x0A (10)) |
\r | 回车(ASCII 字符集中的 CR 或 0x0D (13)) |
\t | 水平制表符(ASCII 字符集中的 HT 或 0x09 (9)) |
\v | 垂直制表符(ASCII 字符集中的 VT 或 0x0B (11))(自 PHP 5.2.5 起) |
\e | Escape(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} | 符合该正则表达式序列的是一个以十六进制方式来表达的字符 |
和单引号字符串一样,转义任何其它字符都会导致反斜线被显示出来
花括号语法
由于 { 无法被转义,只有 $ 紧挨着 { 时才会被识别,不能有空格,且必须用双引号包围(不能用在双引号之外)
$x = 'hello';$y = 'world';$str = "Hi, {$x}";// $str = 'Hi, {$x}'; // 无效// $str = "Hi, {$x}" . {$y}; // 无效
自动类型转换为字符串
一个布尔值 boolean 的 TRUE 被转换成 string 的 “1”。Boolean 的 FALSE 被转换成 “”(空字符串)
一个整数 integer 或浮点数 float 被转换为数字的字面样式的 string(包括 float 中的指数部分)
数组 array 总是转换成字符串 “Array”,因此,echo 和 print 无法显示出该数组的内容
Object不能转换成字符串,自 PHP 5 起,适当时可以用 __toString 方法
字符串函数
http://php.net/manual/zh/ref.strings.php
字符串的编码
字符串会被按照该脚本文件相同的编码方式来编码。操作文本的函数必须假定字符串是如何编码的,不幸的是,PHP 关于此的函数有很多变种
某些函数假定字符串是以单字节编码的,但并不需要将字节解释为特定的字符。例如 substr(),strpos(),strlen() 和 strcmp()。理解这些函数的另一种方法是它们作用于内存缓冲区,即按照字节和字节下标操作。
某些函数被传递入了字符串的编码方式,也可能会假定默认无此信息。例如 htmlentities() 和 mbstring 扩展中的大部分函数。
其它函数使用了当前区域(见 setlocale()),但是逐字节操作。例如 strcasecmp(),strtoupper() 和 ucfirst()。这意味着这些函数只能用于单字节编码,而且编码要与区域匹配。例如 strtoupper(“á”) 在区域设定正确并且 á 是单字节编码时会返回 “Á”。如果是用 UTF-8 编码则不会返回正确结果,其结果根据当前区域有可能返回损坏的值。
最后一些函数会假定字符串是使用某特定编码的,通常是 UTF-8。intl 扩展和 PCRE(上例中仅在使用了 u 修饰符时)扩展中的大部分函数都是这样。尽管这是由于其特殊用途,utf8_decode() 会假定 UTF-8 编码而 utf8_encode() 会假定 ISO-8859-1 编码。
要书写能够正确使用 Unicode 的程序依赖于很小心地避免那些可能会损坏数据的函数,必要时使用mbstring扩展的多字节字符串函数。
Resource 资源类型资源 resource 是一种特殊变量,保存了到外部资源的一个引用,如打开文件、数据库连接、图形画布区域等的特殊句柄
由于 PHP 4 Zend 引擎引进了引用计数系统,可以自动检测到一个资源不再被引用了(和 Java 一样)。这种情况下此资源使用的所有外部资源都会被垃圾回收系统释放。因此,很少需要手工释放内存。
持久数据库连接比较特殊,它们不会被垃圾回收系统销毁。
将其它类型的值转换为资源没有意义。
NULL特殊的 NULL 值表示一个变量没有值。NULL 类型只有一个值,就是不区分大小写的常量 NULL。
在下列情况下一个变量被认为是 NULL:
被赋值为 NULL。尚未被赋值。被 unset()。强制类型转换
允许的强制转换有
(int), (integer) - 转换为整形 integer(bool), (boolean) - 转换为布尔类型 boolean(float), (double), (real) - 转换为浮点型 float(string) - 转换为字符串 string(array) - 转换为数组 array(object) - 转换为对象 object(unset) - 转换为 NULL (PHP 5)
使用settype()函数
// 可以设置的type类型如下“boolean” (或为“bool”,从 PHP 4.2.0 起)“integer” (或为“int”,从 PHP 4.2.0 起)“float” (只在 PHP 4.2.0 之后可以使用,对于旧版本中使用的“double”现已停用)"string""array""object"“null” (从 PHP 4.2.0 起)
还有一些类型转换的函数boolval()、intval()、floatval()、strval()
版权声明:本文为博主原创文章,未经博主允许不得转载。

多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります

2012年のFacebookによる有名な買収に続いて、Instagramはサードパーティの使用のために2セットのAPIを採用しました。これらはInstagramグラフAPIとInstagram Basic Display APIです。

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。
