php伝値付与と参照付与の違い

7262 ワード

値の割り当て:1つの式の値に変数を割り当てると、元の式全体の値がターゲット変数に与えられます.これは、例えば、1つの変数の値が別の変数に与えられると、1つの変数の値を変更しても、別の変数には影響しないことを意味する.
 
  
$a=123; $a=123;
$b=$a; $b=&$a;
$a=321; $a=321;
Echo”$a,$b”;// ”321,123” Echo”$a,$b”;// ”321,321”
?> ?>
: , , & ( )
PHP ( ) ; 。 , var ,var 。 var , 。

: (int),(integer) - (bool),(boolean) - (float),(double),(real) - (string) - (array) - (object) - Settype()
Settype()
[code]
$foo = "5bar"; // string
$bar = true; // boolean

settype($foo, "integer"); // $foo 5 (integer)
settype($bar, "string"); // $bar "1" (string)
?>

変数範囲変数の範囲は、定義されたコンテキストバックグラウンド(つまり、その有効範囲)です.ほとんどのPHP変数は、1つの個別の範囲しかありません.この個別の範囲スパンには、includeとrequireが導入したファイルも含まれています.
静的変数の範囲のもう一つの重要な特性は静的変数(static variable)です.静的変数は局所関数ドメインにのみ存在しますが、プログラムがこの役割ドメインを離れると、その値は失われません.
配列PHPの配列は実際には秩序図である.図はvaluesをkeysにマッピングするタイプです.このタイプは多くの点で最適化されているため、真の配列として使用したり、リスト(ベクトル)、ハッシュリスト(図の実装)、辞書、集合、スタック、キュー、その他の可能性として使用したりすることができます.別のPHP配列を値として使用したり、ツリーを簡単にシミュレートしたりすることができます.
array()を定義すると、array()言語構造でarrayを新規作成できます.カンマで区切られたkey=>valueパラメータペアの数を受け入れます.
array( key => value , ... )
//keyはintegerまたはstring
//value任意の値
 
  
// foreach ($array as $i => $value) {
$array = array(1, 2, 3, 4, 5); unset($array[$i]);
print_r($array); }
print_r($array);
// ( 5, 0)
$array[] = 6;
print_r($array); // :
$array = array_values($array);
$array[] = 7;
print_r($array);
?>

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);
// Now $b is array(0 => 'one', 1 =>'three')
?>

コンストラクタ
void __construct ([ mixed $args [, $... ]] )
PHP 5允行開発者は、構築関数としてクラス内でメソッドを定義します.コンストラクション関数を持つクラスは、オブジェクトを作成するたびにこのメソッドを呼び出すので、オブジェクトを使用する前に初期化作業を行うのに適しています.
Note:子クラスにコンストラクション関数が定義されている場合、親クラスのコンストラクション関数は暗黙的に呼び出されません.親クラスのコンストラクション関数を実行するには、サブクラスのコンストラクション関数でparent:_を呼び出す必要があります.construct().
Example#1新しい標準のコンストラクション関数を使用
 
  
class BaseClass {
function __construct() {
print "In BaseClass constructor
";
}
}
class SubClass extends BaseClass {
function __construct() {
parent::__construct();
print "In SubClass constructor
";
}
}
$obj = new BaseClass();
$obj = new SubClass();
?>

二重引用符のフィールドはコンパイラによって解釈され、htmlコードとして出力されます.単引用符の中のものは解釈せず、直接出力します.$abc='my name is tom'; echo$abc//結果はmy name is tom;echo'$abc'//結果は$abc;echo'$abc//結果はmy name is tom
アクセス制御属性またはメソッドへのアクセス制御は、キーワードpublic、protectedまたはprivateを前に追加することによって実現される.publicによって定義されたクラスメンバーは、どこでもアクセスできます.protectedによって定義されたクラスメンバーは、そのクラスのサブクラスおよび親クラスによってアクセスできます(もちろん、そのメンバーが存在するクラスもアクセスできます).privateによって定義されたクラスメンバーは、そのクラスにのみアクセスできます.
 
  
class MyClass
{
public $public = 'Public';
protected $protected = 'Protected';
private $private = 'Private';
function printHello()
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}

抽象クラスPHP 5には抽象クラスと抽象メソッドが導入されている.abstractとして定義されたクラスのインスタンスを作成することはできません.少なくとも1つの抽象メソッドを含むクラスも抽象的でなければなりません.抽象的に定義された方法は、方法を宣言する信号にすぎず、それらの実装を定義することはできない.
1つの抽象クラスから継承する場合、親クラス内のすべての抽象メソッドのタグの宣言はサブクラスによって定義される必要があります.また、これらのメソッドは、同じアクセスプロパティを定義する必要があります.例えば、メソッドがprotectedタイプとして定義場合、実行関数はprotectedまたはpublicとして定義必要がある.
インタフェースオブジェクトインタフェースを使用すると、指定したクラスのメソッドの実行コードを作成できます.これらのメソッドがどのように操作(処理)されているかを説明する必要はありません.インタフェースは、インタフェースキーの使用を定義するために使用され、標準クラスとして使用されますが、コンテンツの定義は方法がありません.インタフェース内のすべてのメソッドはpublicとして宣言する必要があります.これはインタフェースの特性です.implements(実行、実装)は、インタフェースを実装するためにimplements操作を使用する.インタフェース内のすべての方法は1つのクラスの内部で実現しなければならない.これらを油断すると致命的なエラーになります.各インタフェースをカンマで区切る場合、クラスは複数のインタフェースを実装できます.
リロードメソッド呼び出しとメンバーアクセスの両方を使用できます.call,__getと_setメソッドがロードされます.これらのメソッドは、メンバーまたはメソッドを含まないオブジェクトまたは継承オブジェクトにアクセスしようとするとトリガーされます.すべてのリロードメソッドがstaticとして定義する必要はありません.PHP 5.1から.0からもパスできます_isset()と_unset()メソッドはisset()とunset()関数を1つずつ再ロードします.
PHP $_GET変数はgetメソッドでフォームから「値」を取得します.「$_GET」変数を使用すると、すべての変数名と変数値がURLアドレスバーに表示されます.したがって、送信された情報にパスワードや他の機密情報が含まれている場合は、この方法は使用できません.
PHP $_POST変数の役割は、method=「post」メソッドで送信されるフォーム変数を取得することです.
ケース
 
  

Enter your name:

Enter your age:




Cookieは通常、ユーザーを検証または識別するために使用されます.Cookieは、サーバを介してユーザコンピュータに送信される小さなファイルです.同じコンピュータがブラウザを介してページを要求するたびに、元のクッキーもサーバに送信されます.PHPを使用してクッキーの値を作成して取得できます.
 
  
setcookie("user", "Alex Porter", time()+3600); ?>

cookie // Print a cookie
echo $_COOKIE["user"];
// A way to view all cookies
print_r($_COOKIE);
?>

PHPセッション変数の役割は,ユーザのセッション情報を格納したり,ユーザのセッション設定を変更したりすることである.Session変数は、すべてのページで使用できる単一のユーザの情報を格納します.
Mvcモードはアプリケーションの表現を下位アプリケーションの論理と分離して3つの部分に分けます:モデルビューコントローラ
Zend_Controllersルーティングは、ユーザ要求を送信すると、自動的にコントローラディレクトリにnameControllerという名前のものを検索する.phpのファイル、ここでnameは指定されたコントローラ名に対応し、newsというコントローラがnewscontroller.に対応することを示す.phpのファイル
Smartyはphpで作成されたテンプレートエンジンで、アプリケーションの出力と表示ロジックとアプリケーションロジックを簡単に分離できます.
ZEND配置
1、ローカル解析C:WINNTsystem 32driversetchostsの作成
127.0.0.1 phpweb20 127.0.0.1 phpmyadmin
2、httpd.conf D:\AppServ\Apache2.2\conf
(1)書き換えエンジンhpptdを開く.conf(開くモジュールがない)LoadModule rewrite_module
前の#を取り除く
(2)仮想ホスト#Include conf/extra/http-vhostsを開く.conf前を取り除く
3、httpd-vhosts.conf
 
  

ServerName phpweb20
DocumentRoot "d:\appserv\www\phpweb20\htdocs"

AllowOverride All
Options All

php_value include_path ".;d:\appserv\www\phpweb20\include;D:\AppServ\php5\ext"


4、作成.htaccess
5、phpを修正する.ini
C:\WINNT
インポート
php_pdo.dll
php_pdo_mysql.dll