這些PHP的概念
variable_variables
<?php
$a =
$hello =
echo $$a
$b =
$c =
$e =
$students = array(
echo ${$students[
/*
foreach($students as $seat){
echo $$seat
}
$$var[
${$var[
*/
$a =
將hello 賦值給 變量 $a
如果對於 $$students[
好的寫法是
array_functions
<?php
echo
$numbers = array(
print_r($numbers);
echo
// shifts first elemnt out of an array
// the index will reset
$a = array_shift($numbers);
echo
print_r($numbers);
// push element to the front of array
// returns the count of array and reset array index
$b = array_unshift($numbers
echo
print_r($numbers);
echo
echo
// pop the last element out of array
$c = array_pop($numbers);
print_r($numbers);
echo
// push the element to the last of array
$d = array_push($numbers
echo
print_r($numbers);
更多數組函數參考
有
time(); 返回當前的時間戳
mktime($hr
strtotime($string); strtotime("+
checkdate($month
得到了時間戳後
我們有
推薦用第
更多時間日期參考
$_SERVER
server_variables
<?php
echo
echo
echo
echo
echo
echo
echo
echo
echo
echo
echo
echo
echo
echo
echo
更多詳細信息
static_variables
<?php
function test()
{
$a =
echo $a;
$a++;
}
test();
echo
test();
echo
test();
echo
echo
function test
{
static $a =
echo $a;
$a++;
}
test
echo
test
echo
test
echo
test() 函數中的變量 $a 沒有保存 $a++ 的結果
而test
引用
一個靜態變量 只能存在於本地的函數作用域內 也就是test
global_variables
<?php
$a =
$b =
function Sum()
{
global $a
$b = $a + $b;
}
Sum();
echo $b;
echo
$a =
$b =
function Sum
{
$GLOBALS[
}
Sum
echo $b;
引用
如果這些變量將在函數中使用
更多詳細信息
variable_reference
<?php
$a =
$b = $a;
$b =
echo "My name is:{$a}
echo
$a =
$b = &$a;
$b =
echo "My name is:{$a}
這個概念可以這樣理解
通過 &
所以通過引用後
<?php
function ref_test(&$var){
return $var *=
}
$a =
ref_test($a);
echo $a;
當我們按引用傳遞參數給函數時
所以當我們調用函數ref_test($a)的時候已經改變了 $a 的值
reference_function_return_value
<?php
function &increment(){
static $var =
$var++;
return $var;
}
$a =& increment(); //
increment(); //
$a++; //
increment(); //
echo "a: {$a}";
首先申明一個引用函數
$a =& increment(); 這條語句是 變量$a 引用 函數increment() 的返回值
和前面的引用變量一樣
所以increment() 和 $a 都指向同一個值
更多詳細信息
對象 OOP
這個錯誤剛學 OOP 肯定容易出現
那麼錯誤是如何發生的呢?看下面的例子
<?php
class Trones{
static public $fire = "I am fire
public $water = "I am water";
static function getFire( ) {
return $this
}
static function getWater( ) {
return $self::water ; // wrong
}
static function Fire( ) {
return self::$fire ; // be sure you use self to access the static property before you invoke the function
}
}
/*
Fatal error: Using $this when not in object context
*/
//echo Trones::getFire( ) ;
//echo Trones::getWater( ) ;
// correct
echo Trones::Fire( );
echo "<br />" ;
$trones = new Trones ;
$trones
echo Trones::$fire ;
這個錯誤很經典
Declaring class properties or methods as static makes them accessible without needing an instantiation of the class
翻譯
例子說明
同樣你也不能用 靜態操作符 :: 來訪問一個公共變量
對於繼承類
最近有部連續劇很好看
下面的故事還有一個標題
<?php
class Trones {
protected $fire = " fire ";
public $water = " water " ;
static private $trones = "Trones";
protected function getFire( ) {
$this
}
static public function TheDragenOfMather( ) {
return __METHOD__
}
static public function getWater( ) {
return __METHOD__ ;
}
static private function getTrones( ) {
return self::$trones ;
}
}
class Kings extends Trones {
static function TheSevenKing( ) {
return __METHOD__
}
}
class People extends Trones{
static function ThePeople( ) {
return __METHOD__
}
}
echo Kings::TheSevenKing( ) ;
echo Trones::TheDragenOfMather( ) ;
echo People::ThePeople( ) ;
正確答案是
當static 碰到 private
如果想要龍女 獲得最後的勝利
怎麼使人民獲得王冠呢? 你去奮斗吧!
如果你不構建大型的框架和網站 這些概念比如 Interface Implement abstract
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20380.html