ホームページ > バックエンド開発 > PHPチュートリアル > PHP の値による代入と参照による代入の違い_PHP チュートリアル

PHP の値による代入と参照による代入の違い_PHP チュートリアル

WBOY
リリース: 2016-07-21 15:32:52
オリジナル
1093 人が閲覧しました

値による代入: 式の値を変数に代入する場合、元の式全体の値がターゲット変数に代入されます。これは、たとえば、ある変数の値が別の変数に割り当てられているときにその変数の値を変更しても、他の変数には影響を与えないことを意味します。

コードをコピーします コードは次のとおりです:
$a=123; $b=&$a; ;
$a =321; $a=321;
Echo”$a,$b”;//「321,123」を表示
?>

参照割り当て
: 新しい変数は元の変数を参照するだけです。新しい変数を変更すると、元の変数に影響します。割り当てられる変数 (ソース変数) の前に & 記号を追加するだけです。変数定義では、明示的な型定義は必要ありません (またはサポートされません)。変数の型は、変数が使用されるコンテキストに基づいて決定されます。つまり、変数 var に文字列値を代入すると、var は文字列になります。 var に整数値を代入すると、それは整数になります。
型キャスト 許可されるキャストは次のとおりです: (int)、(integer) - 整数 (bool) に変換され、(boolean) - ブール値 (float)、(double)、(real) に変換されます。 ) - 文字列(配列)に変換 - 配列(オブジェクト)に変換 - オブジェクトに変換 Settype()で型変換関数 Settype()
[code]
$foo = "5bar ";
$bar = true; // boolean

settype($foo, "integer"); // $foo は 5 (整数) になります
settype($bar, "string"); // $ bar は "1" になります。 " (文字列)
?>


変数のスコープ 変数のスコープは、変数が定義されているコンテキスト (つまり、その有効スコープ) です。ほとんどの PHP 変数にはスコープが 1 つだけあります。この単一スコープ スパンには、include および require によって導入されたファイルも含まれます。
静的変数 変数スコープのもう 1 つの重要な機能は、静的変数です。静的変数はローカル関数スコープ内にのみ存在しますが、プログラムの実行がこのスコープを離れても、その値は失われません。
配列 PHP の配列は、実際には順序付けられたグラフです。グラフは値をキーにマッピングするタイプです。この型はさまざまな方法で最適化されているため、実配列、リスト (ベクトル)、ハッシュ テーブル (グラフの実装)、辞書、セット、スタック、キューなどとして使用できます。さらなる可能性を。別のPHP配列を値として使用できるので、ツリーのシミュレーションも簡単に行えます。 array() の定義 array() 言語構造を使用して、新しい配列を作成できます。カンマで区切られたキー => 値パラメータのペアを多数受け入れます。
array( key => value , ... )
// key は整数または文字列にすることができます
// value は任意の値にすることができます



コードをコピーする
コードは次のとおりです: // 単純な配列 foreach を作成します ($array as $i => $value) {
$array = array(1, 2, 3, 4) , 5 ); unset($array[$i]);
print_r($array);
// 新しいキー名は 0 ではなく 5 であることに注意してください。考えます)
$array[] = 6;
print_r($array); // 再インデックス:
$array[] = 7;


unset() 関数を使用すると、配列内のキーの設定を解除できます。配列のインデックスは再作成されないことに注意してください。



コードをコピー

コードは次のとおりです:


$a = array( 1 => 'one', 2 => 'two', 3 => 'three' ); unset( $a[2] ); /* は $ の代わりに $a = array( 1=>'one', 3=>'three'); として定義される配列を生成します。 a = array ( 1 => 'one', 2 => 'three');
*/
$b = array_values($a)
// これで $b は array(0 => 'one') , 1 = >'three')
?>


Constructor
void __construct ([mixed $args [, $... ]] )
PHP 5 では、開発者がクラス内のコンストラクターとしてメソッドを定義できます。コンストラクターを持つクラスは、オブジェクトが作成されるたびにこのメソッドを呼び出すため、オブジェクトを使用する前に初期化作業を行うのに非常に適しています。
注: コンストラクターがサブクラスで定義されている場合、その親クラスのコンストラクターは暗黙的に呼び出されません。親クラスのコンストラクターを実行するには、子クラスのコンストラクターでparent::__construct()を呼び出す必要があります。
例#1 新しい標準コンストラクターの使用


コードをコピーします

コードは次のとおりです:

class BaseClass {
function __construct() {
print "In BaseClass コンストラクター";
}
}
class SubClass extends BaseClass {
function __construct() {
parent::__construct(); "サブクラス コンストラクター内";
}
}
$obj = new BaseClass();
$obj = new SubClass();>


二重引用符内のフィールドは HTML として処理されます。コード出力。一重引用符内の単語は解釈されず、直接出力されます。 $abc='私の名前はトム'; echo $abc//結果は私の名前はトムです;echo'$abc'//結果は$abc;echo"$abc"//結果は私の名前はトムです


アクセス制御 プロパティまたはメソッドのアクセス制御は、先頭に public、protected、または private のキーワードを追加することで実現されます。 public で定義されたクラス メンバーにはどこからでもアクセスできます。protected で定義されたクラス メンバーは、そのメンバーが配置されているクラスのサブクラスおよび親クラスからアクセスできます (もちろん、そのメンバーが配置されているクラスにもアクセスできます)。定義されたクラス メンバーには、そのメンバーが配置されているクラスからのみアクセスできます。


コードをコピーします コードは次のとおりです:
class MyClass
{
public $public = 'Public'
protected $protected = 'Protected'; 'Private';
function printHello()
{
echo $this->public;
echo $this->private
}
抽象クラスPHP 5 と抽象メソッドで導入されました。抽象として定義されたクラスのインスタンスを作成することはできません。少なくとも 1 つの抽象メソッドを含むクラスも抽象メソッドである必要があります。抽象として定義されたメソッドは、メソッドを宣言するための信号にすぎず、その実装は定義されません。
抽象クラスから継承する場合、親クラスのすべての抽象メソッドのタグの宣言は、サブクラスによって定義する必要があります。また、これらのメソッドは同じアクセス属性で定義する必要があります。たとえば、メソッドが保護された型として定義されている場合、実行関数は保護またはパブリックとして定義する必要があります。
インターフェイス オブジェクト インターフェイスを使用すると、これらのメソッドがどのように操作されるかを説明することなく、指定されたクラスのメソッドの実行コードを作成できます。加工済み)。このインターフェイスは、やはり標準クラスとしてインターフェイス キーワードを定義するために使用されますが、その内容が定義されているメソッドはありません。インターフェイス内のすべてのメソッドは public に宣言する必要があります。これはインターフェイスの特性です。 implements (実行、実装) インターフェースを実装するには、implements オペレーションを使用します。インターフェイス内のすべてのメソッドはクラス内に実装する必要があります。これらを省略すると致命的なエラーが発生します。必要に応じて、各インターフェイスをカンマで区切ることにより、クラスで複数のインターフェイスを実装できます。
オーバーロードされたメソッド呼び出しとメンバーアクセスは、__call、__get、__set メソッドを通じてロードできます。これらのメソッドは、メンバーやメソッドを含まないオブジェクトまたは継承されたオブジェクトにアクセスしようとした場合にのみトリガーされます。すべてのオーバーロードされたメソッドを静的として定義する必要があるわけではありません。PHP 5.1.0 以降では、__isset() メソッドと __unset() メソッドを使用して isset() 関数と unset() 関数を 1 つずつオーバーロードすることもできます。
PHP $_GET 変数は、get メソッドを通じてフォームから「値」を取得します。 「$_GET」変数を使用すると、すべての変数名と変数値が URL アドレス バーに表示されるため、送信する情報にパスワードやその他の機密情報が含まれている場合は、このメソッドを使用できなくなります。
PHP $_POST 変数の目的は、method = "post" メソッドによって送信されたフォーム変数を取得することです。
ケース



コードをコピー

コードは次のとおりです:

名前を入力してください:
Cookieは通常、ユーザーを認証または識別するために使用されます。 Cookie は、サーバーを通じてユーザーのコンピュータに送信される小さなファイルです。同じコンピュータがブラウザを通じてページをリクエストするたびに、以前に保存された Cookie もサーバーに送信されます。 PHP を使用して Cookie 値を作成および取得できます。


コードをコピーします

コードは次のとおりです:


setcookie("user", "Alex Porter", time()+3600);

Cookie の値を取得// Cookie を印刷する
echo $_COOKIE["user"] // すべての Cookie を表示する方法 print_r($_COOKIE) ; ?>
PHP セッション変数の目的は、ユーザーのセッション情報を保存したり、ユーザーのセッション設定を変更したりすることです。 Session 変数には 1 人のユーザーに関する情報が保存され、すべてのページで使用できます。

Mvc パターンは、アプリケーションのプレゼンテーションを 3 つの部分に分割します。コントローラー
Zend_controllers ルートがユーザーリクエストを送信すると、コントローラーディレクトリ内で nameController.php という名前のファイルが自動的に検索されます。ここで、name は指定されたコントローラー名に対応します。つまり、news という名前のコントローラーは newscontroller という名前のファイルに対応します。 php
Smarty は PHP で書かれたテンプレート エンジンで、アプリケーションの出力とプレゼンテーション ロジックをアプリケーション ロジックから簡単に分離できます
ZEND 構成
1. ローカル解析 C:WINNTsystem32driversetchosts を作成します
127.0.0.1 phpweb20 127.0.0.1 phpmyadmin
2。 httpd.conf D:AppServApache2.2conf
(1) 書き換えエンジン hpptd.conf を開きます (# のないモジュールが開くことができるモジュールです) #LoadModule rewrite_module
前の # を削除します
(2) 仮想ホストを開きます #Include conf/extra/httpd-vhosts.conf 前の #
3 を削除し、httpd-vhosts.conf
コードをコピーします コードは次のとおりです。


ServerName phpweb20
DocumentRoot " d:appservwwwphpweb20htdocs"
<ディレクトリ "d:appservwwwphpweb20htdocs">
AllowOverride All
Options All

php_value include_path ".;d:appservwwwphpweb20include;D:AppServphp5ext; lt;/仮想ホスト>

4. .htaccess を作成します
5. php.ini を変更します
C:WINNT
php_pdo.dll
php_pdo_mysql.dll をインポートします

http://www.bkjia.com/PHPjc/322746.html

tru​​ehttp://www.bkjia.com/PHPjc/322746.html技術記事値による代入: 式の値を変数に代入する場合、元の式全体の値がターゲット変数に代入されます。これは、たとえば、ある変数の値が別の変数に代入される場合...
ということを意味します。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート