PHP 5.5 empty + 戏法变量 的坑

Jun 13, 2016 am 11:55 AM
body empty property raw response

PHP 5.5 empty + 魔术变量 的坑

今天在测试代码时遇到这么一个疑问?

			dump((int)empty($response->raw_body));						$response_body = $response->raw_body;						dump(' ' . (int)empty($response_body));
ログイン後にコピー

?这段代码的输出结果却是:

写道
1
0

?

为什么会这样呢,很奇怪是不是? 我那个 $response 是一个类对象,其获取

raw_body
ログイン後にコピー

属性是通过魔术函数来获取的

public function __get($property)	{		echo 123;		if (property_exists($this, $property)) {			return $this->$property;		}	}
ログイン後にコピー

?

为了测试,我在上面的代码中输出了 123,结果显示

写道
1

123

0

?

也就是说

(int)empty($response->raw_body)
ログイン後にコピー

时并没有去执行 对象 $response 的 __get 方法

?

所以在用PHP魔术变量的童鞋们 注意下这个坑

?

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

raw ドライブで chkdsk を使用できない場合はどうすればよいですか? raw ドライブで chkdsk を使用できない場合はどうすればよいですか? Mar 06, 2023 pm 03:27 PM

raw ドライブで chkdsk を使用できない問題の解決策: 1. 下部のタスクバーの Win アイコンを右クリックし、ポップアップ メニュー バーの [ファイル名を指定して実行] オプションをクリックします; 2. 「chkdsk /?」と入力します。コマンド ライン ウィンドウで Enter キーをクリックして確認します ;3. chkdsk ツールが正常に実行されるまで待ちます。

PHP 注意: 非オブジェクトのプロパティを取得しようとしています - 解決策 PHP 注意: 非オブジェクトのプロパティを取得しようとしています - 解決策 Aug 17, 2023 am 09:27 AM

PHP Notice: Tryingtogetpropertyofnon-object-Solution PHP 開発プロセス中に、「Tryingtogetpropertyofnon-object (非オブジェクトのプロパティを取得しようとしています)」という一般的なエラー メッセージが表示されることがあります。このエラーは通常、オブジェクト型ではない変数のプロパティにアクセスしようとした (またはメソッドを呼び出した) ときに発生します。この記事ではこれについて紹介します

PHP への解決策 注意: 未定義のプロパティ: PHP への解決策 注意: 未定義のプロパティ: Jun 22, 2023 pm 02:48 PM

PHP でコードを作成するときに、「通知: 未定義のプロパティ」というエラー メッセージが表示される場合があります。このエラーは、未定義のプロパティにアクセスしていることを意味します。通常、そのプロパティがコード内で初期化されていないことが原因です。では、この問題をどうやって解決すればよいでしょうか?考えられる解決策は次のとおりです。 プロパティを初期化する これは、この問題を解決する最も簡単な方法です。コード内でプロパティを明示的に初期化すると、使用前にプロパティが確実に定義されます。例: クラス

Laravel開発: Laravel Responseを使用してレスポンスを返すにはどうすればよいですか? Laravel開発: Laravel Responseを使用してレスポンスを返すにはどうすればよいですか? Jun 14, 2023 am 10:39 AM

Laravel は、応答の戻りを含む多くの便利な機能とコンポーネントを提供する人気のある PHP Web 開発フレームワークです。レスポンスリターンは、Web アプリケーションがクライアントに情報を提供する方法を制御するため、Laravel では非常に重要な概念です。この記事では、Laravel レスポンスが返されるさまざまな方法と、LaravelResponse を使用してレスポンスを返す方法について詳しく説明します。 Laravelで文字列を返すには、Responseオブジェクトを使用できます。

PHPは、指定されたキーが配列内に存在するかどうかを判断します PHPは、指定されたキーが配列内に存在するかどうかを判断します Mar 21, 2024 pm 09:21 PM

この記事では、PHP が配列内に指定されたキーが存在するかどうかを判断する方法について詳しく説明します。編集者が非常に実用的であると考えたので、参考として共有します。この記事を読んで何かを得ることができれば幸いです。 PHP は、指定されたキーが配列内に存在するかどうかを判断します。 PHP では、指定されたキーが配列内に存在するかどうかを判断する方法が数多くあります。 1. isset() 関数を使用します: isset($array["key"]) この関数ブール値を返します。指定されたキーが存在する場合は true、存在しない場合は false。 2. array_key_exists() 関数を使用します: array_key_exists("key",$arr)

TypeError: Vue で null のプロパティ 'XXX' を読み取れません。どうすればよいですか? TypeError: Vue で null のプロパティ 'XXX' を読み取れません。どうすればよいですか? Nov 25, 2023 pm 01:21 PM

Vue は、ユーザー インターフェイスを構築するための人気のある JavaScript フレームワークです。開発プロセス中に、さまざまなエラーや例外が発生することがあります。よくあるエラーの 1 つは、「TypeError:Cannotreadproperty'XXX'ofnull」です。この記事では、このエラーの原因とその修正方法について説明します。まず、このエラーの背後にある理由を理解しましょう。オブジェクトのプロパティまたはメソッドにアクセスしようとすると、そのペアが

TypeError: Vue で未定義のプロパティ 'XXX' を読み取れません。どうすればよいですか? TypeError: Vue で未定義のプロパティ 'XXX' を読み取れません。どうすればよいですか? Nov 25, 2023 am 10:56 AM

TypeError:Vue で定義されていないプロパティ 'XXX' を読み取れません。どうすればよいですか? Vue を使用して開発するフロントエンド開発者は、開発プロセス中に TypeError:Cannotreadproperty'XXX'ofunknown エラーに遭遇することがよくあります。このエラーは通常、未定義のプロパティにアクセスしようとしたときに発生します。存在する

TypeError: Vue で未定義のプロパティ '$XXX' を読み取れません。解決策は何ですか? TypeError: Vue で未定義のプロパティ '$XXX' を読み取れません。解決策は何ですか? Nov 25, 2023 am 10:00 AM

TypeError:Vue で定義されていないプロパティ '$XXX' を読み取れません。解決策は何ですか? Vue 開発では、TypeError:Cannotreadproperty'$XXX'ofundefine などのエラーが頻繁に発生します。このエラーは通常、Vue インスタンスで未定義のプロパティまたはメソッドを使用したことが原因で発生します。このエラーが発生した場合、次のことを行う必要があります。

See all articles