一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - php 傳值賦值與引用賦值的區別

php 傳值賦值與引用賦值的區別

2019-11-14 14:46PHP教程網 PHP教程

引用賦值:這意味著新的變量簡單的引用(換言之,“成為其別名” 或者 “指向”)了原始變量。改動新的變量將影響到原始變量,反之亦然。

傳值賦值:當將一個表達式的值賦予一個變量時,整個原始表達式的值被賦予到目標變量。這意味著,例如,當一個變量的值賦予另一個變量時,改變其中一個變量的值,將不會影響到另一個變量。 

復制代碼代碼如下:


<?php <?php 
$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] 
<?php 
$foo = "5bar"; // string 
$bar = true; // boolean 

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


變量范圍變量的范圍即它定義的上下文背景(也就是它的生效范圍)。大部分的 PHP 變量只有一個單獨的范圍。這個單獨的范圍跨度同樣包含了 include 和 require 引入的文件。 
靜態變量變量范圍的另一個重要特性是靜態變量(static variable)。靜態變量僅在局部函數域中存在,但當程序執行離開此作用域時,其值并不丟失。 
數組PHP 中的數組實際上是一個有序圖。圖是一種把 values 映射到 keys 的類型。此類型在很多方面做了優化,因此可以把它當成真正的數組來使用,或列表(矢量),散列表(是圖的一種實現),字典,集合,棧,隊列以及更多可能性。因為可以用另一個 PHP 數組作為值,也可以很容易地模擬樹。 
定義 array() 可以用 array() 語言結構來新建一個 array。它接受一定數量用逗號分隔的 key => value 參數對。 
array( key => value , ... ) 
// key 可以是 integer 或者 string 
// value 可以是任何值 

復制代碼代碼如下:


<?php // 現在刪除其中的所有單元,但保持數組本身的結構 
// 創建一個簡單的數組 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() 函數允許取消一個數組中的鍵名。要注意數組將不會重建索引。 

復制代碼代碼如下:


<?PHP 
$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 使用新標準的構造函數 

復制代碼代碼如下:


<?php 
class BaseClass { 
function __construct() { 
print "In BaseClass constructor\n"; 


class SubClass extends BaseClass { 
function __construct() { 
parent::__construct(); 
print "In SubClass constructor\n"; 


$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 定義的類成員則只能被其所在類訪問。 

復制代碼代碼如下:


<?php 
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的類的一個實例。任何至少包含一個抽象方法的類也必須是抽象的。被定義為抽象的方法僅僅是聲明方法的一個信號,并不能定義它們的實現。 
當從一個抽象類繼承時,在父類中所有抽象方法的標記的聲明必須通過子類定義;另外,這些方法必須用定義相同的訪問屬性。例如,如果方法被定義為protected類型,執行函數必須定義為protected或public. 
接口對象接口允許你創建一個指定類的方法的執行代碼,而不必說明這些方法是如何被操作(處理)的。接口被用來定義接口關鍵字的使用,同樣作為一個標準類,但沒有任何方法有它們內容的定義。在接口中所有的方法必須聲明為public,這是接口的特性。implements (執行,實現)為了實現一個接口,使用了implements操作。在接口中所有的方法必須在一個類的內部實現;疏忽這些將導致一個致命錯誤。如果渴望通過使用一個逗號分開每個接口,類可以實現多個接口。 
重載方法調用和成員訪問都能通過__call,__get和__set方法被加載。這些方法將只有當你試圖訪問不包括成員或方法的對象或繼承對象時觸發。不是所有的重載方法都必須被定義為static.從PHP 5.1.0開始也可以通過__isset()和__unset()方法逐個重載isset()和unset()函數。 
PHP $_GET變量是通過get方法從表單中獲取“值”的。當使用“$_GET”變量時,所有的變量名和變量值都會顯示在URL地址欄內;所以,當你發送的信息包含密碼或是其他一些敏感信息時,就不可以再使用這種方法。 
PHP $_POST變量的作用是:獲取method = “post”方法發送的表單變量。 
案例 

復制代碼代碼如下:


<form action="welcome.php" method="post"> 
Enter your name: 
<input type="text" name="name" /> 
Enter your age: 
<input type="text" name="age" /> 
<input type="submit" /> 
</form> 


Cookie通常用來驗證或辨別一個用戶。Cookie是通過服務器發送到用戶計算機中的一個小文件。每次,當相同的計算機通過瀏覽器請求一個頁面時,原先存儲的cookie也會發送到服務器。你可以使用PHP來創建和獲取cookie的值。 

復制代碼代碼如下:


<?php 
setcookie("user", "Alex Porter", time()+3600); ?> 
<html> <body></body> </html> 
獲取cookie值<?php 
// Print a cookie 
echo $_COOKIE["user"]; 
// A way to view all cookies 
print_r($_COOKIE); 
?> 


PHP session變量的作用是:存儲用戶的session信息,或者改變用戶的session設置。Session變量儲存了一個單一用戶的信息,它可以被所有的頁面使用。 
<?php session_start(); ?> <html> <body></body> </html> 
Mvc模式 將應用的表示與底層應用邏輯相分離 分三個部分:模型 視圖 控制器 
Zend_controllers路由發送一個用戶請求時,它會自動地在控制器目錄中查找一個名為nameController.php的文件,這里name對應所指定的控制器名,這說明名為news的控制器對應于一個名為newscontroller.php的文件 
Smarty是一個php編寫的模板引擎,使你能輕松地將應用輸出和表示邏輯和應用邏輯分離 
ZEND配置 
1、創建本地解析C:\WINNT\system32\drivers\etchosts 
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/httpd-vhosts.conf 去掉前面# 
3、httpd-vhosts.conf 

復制代碼代碼如下:


<VirtualHost *:80> 
ServerName phpweb20 
DocumentRoot "d:\appserv\www\phpweb20\htdocs" 
<Directory "d:\appserv\www\phpweb20\htdocs"> 
AllowOverride All 
Options All 
</Directory> 
php_value include_path ".;d:\appserv\www\phpweb20\include;D:\AppServ\php5\ext" 
</VirtualHost> 


4、創建.htaccess 
5、修改php.ini 
C:\WINNT 
導入 
php_pdo.dll 
php_pdo_mysql.dll

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本卡1卡2卡4卡免费 | 亚洲国内精品久久 | 日韩免费高清专区 | 69成人影院 | 美女扒开腿让男人桶爽动态图片 | 国产一卡二卡3卡4卡四卡在线视频 | 青青草精品 | 亚洲国产精品婷婷久久久久 | 亚洲色图欧美视频 | 国产中文在线视频 | 午夜福利自怕 | 日韩毛片高清在线看 | 春光乍泄在线 | 古装一级毛片 | www.九九热 | 三级欧美在线 | 亚洲男女在线 | 99re在线视频免费观看 | youyjzzcom最新欧美 | yellow视频在线观看免费 | 国产女主播福利在线 | 国产一区二区不卡视频 | 亚洲精品短视频 | 91麻豆精品国产 | 精品国产欧美精品v | 1377大但人文艺术包子铺 | 好涨好大我快受不了了视频网 | 美国一级大黄大色毛片 | 亚洲国产欧美久久香综合 | 国产一区二区三区在线看片 | 性趣味商品推荐 | 欧美日韩一区二区三区在线播放 | 成年人免费看的视频 | 男gaygays免费网站多人 | 91精品乱码一区二区三区 | 99精品国产在现线免费 | 日本手机在线视频 | 十八女下面流水不遮免费 | 91香蕉国产在线观看人员 | 欧美日韩一区不卡 | 白丝校花被扒开双腿喷水小说 |