知识大全 PHP的基本常识小结

Posted 变量

篇首语:君子报仇,十年不晚。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 PHP的基本常识小结相关的知识,希望对你有一定的参考价值。

PHP的基本常识小结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  这些PHP的概念 有些刚开始比较难懂 很难理解 我把他们都列出来 希望能帮助一些人 在前进的路上少点荆棘

   variable variables(变量的变量)

  variable_variables php

复制代码 代码如下: <?php $a = hello ; $hello = hello everyone ;

  echo $$a <br /> ;

  $b = John ; $c = Mary ; $e = Joe ;

  $students = array( b c e );

  echo $$students[ ]; /* foreach($students as $seat)     echo $$seat <br /> ;  $$var[ ]  $$var[ ] for # */

  $a = hello ;

  将hello 赋值给 变量 $a 于是 $$a = $hello = $hello = hello everyone ;

  如果对于 $$students[ ]   这样会产生混乱 php的解释器可能无法理解 ‘[ 虽然有较高运算符 但结果可能无法输出

  好的写法是 $$students[ ] = ‘Mary ;

   array s function(数组函数)

  array_functions php

复制代码 代码如下: <?php echo <p>shift & unshift </p> ; $numbers = array( ); print_r($numbers); echo <br /> ;

  // shifts first elemnt out of an array // the index will reset $a = array_shift($numbers);

  echo a: $a <br /> ; print_r($numbers);

  // push element to the front of array // returns the count of array and reset array index $b = array_unshift($numbers first ); echo <br />b: $b <br /> ; print_r($numbers);

  echo <hr /> ; echo <p>pop & push </p> ; // pop the last element out of array $c = array_pop($numbers); print_r($numbers); echo <br /> ;

  // push the element to the last of array $d = array_push($numbers last ); echo d: $d <br /> ;

  print_r($numbers);

  更多数组函数参考

   dates and times (时间和日期) 有 种方法可以创建一个unix time(从 / / 到现在的秒数) time(); 返回当前的时间戳 mktime($hr $min $sec $month $day $year); mktime( ) 返回 / 的时间戳 strtotime($string); strtotime("+ day") 返回明天这个时候的时间戳 更多 last Monday lasy Year checkdate($month $day $year); 验证一个日期是否为真 checkdate( ) ? true : false ; // return false 得到了时间戳后 我们需要对它进行转化为可读的 如 / / 我们有 种方法 date($format $timestamp) ; strftime($format [ $timestamp]) 推荐用第 种 strftime("%Y %m %d %H:%M:%S"); // return : :  

  更多时间日期参考

   server variables (服务器和执行环境信息) $_SERVER server_variables php  

复制代码 代码如下: <?php echo SERVER details:<br /> ; echo SERVER_NAME: $_SERVER[ SERVER_NAME ] <br /> ; echo SERVER_ADD: $_SERVER[ SERVER_ADDR ] <br /> ; echo SERVER_PORT: $_SERVER[ SERVER_PORT ] <br /> ; echo DOCUMENT_ROOT: $_SERVER[ DOCUMENT_ROOT ] <br /> ; echo <br /> ; echo Page details:<br /> ; echo REMOTE_ADDR: $_SERVER[ REMOTE_ADDR ] <br /> ; echo REMORT_PORT: $_SERVER[ REMOTE_PORT ] <br /> ; echo REQUEST_URI: $_SERVER[ REQUEST_URI ] <br /> ; echo QUERY_STRING: $_SERVER[ QUERY_STRING ] <br /> ; echo REQUEST_METHOD: $_SERVER[ REQUEST_METHOD ] <br /> ; echo REQUEST_TIME: $_SERVER[ REQUEST_TIME ] <br /> ; echo HTTP_USER_AGENT: $_SERVER[ HTTP_USER_AGENT ] <br /> ; echo <br /> ;

  更多详细信息

   variable_scope(变量的作用域 global static)

  static_variables php

复制代码 代码如下: <?php function test()     $a = ;     echo $a;     $a++;

  test(); echo <br /> ; test(); echo <br /> ; test(); echo <br /> ;

  echo <hr /> ; function test ()     static $a = ;     echo $a;     $a++;

  test (); echo <br /> ; test (); echo <br /> ; test (); echo <br /> ;

  test() 函数中的变量 $a 没有保存 $a++ 的结果 重复调用test() 并没有使 $a 的值增加

  而test () 函数中 变量 $a 申明了 staic $a = 为静态变量

  引用 A static variable exists only in a local function scope but it does not lose its value when program execution leaves this scope

  一个静态变量 只能存在于本地的函数作用域内 也就是test () 函数体内 但是当程序离开这个test () 作用域时 静态变量不会失去它的值 也就是 $a 变量会增加 当重新调用 test () 时 $a = ;

  global_variables php

复制代码 代码如下: <?php $a = ; $b = ;

  function Sum()     global $a $b;

  $b = $a + $b;

  Sum(); echo $b; echo <hr /> ; $a = ; $b = ;

  function Sum ()     $GLOBALS[ b ] = $GLOBALS[ a ] + $GLOBALS[ b ];

  Sum (); echo $b;

  引用 In PHP global variables must be declared global inside a function if they are going to be used in that function

  如果这些变量将在函数中使用 全局变量必须在使用的那个函数中进行定义 这样可以避免很多麻烦

  更多详细信息 reference(引用) variable_reference php

复制代码 代码如下: <?php $a = arist ; $b = $a; $b = ming ; echo "My name is:$a But my mother call me $b <br />"; echo <hr /> ; $a = arist ; $b = &$a; $b = ming ; echo "My name is:$a And my mother call me $b <br />";

   这个概念可以这样理解 我妈叫我明明 但是我的领导会叫我小言 不管是明明或者是小言 都是我 & 而这个就是不同的人叫我们的别名的方法 即引用 相当于 $a = 我 或者内存中的值 $b = 领导 妈妈 或者变量 通过 & $b指向了$a 在内存中唯一也是相同的值 所以不管你领导叫你什么 或者你妈叫你什么 你都是你 只是称呼不同 所以通过引用后 我们改变$b的值 同时也改变了$a的值 pass reference variable to function(传递引用参数给函数)

复制代码 代码如下: <?php function ref_test(&$var) return $var *= ; $a = ; ref_test($a); echo $a;

   当我们按引用传递参数给函数时 我们传递地不是变量的副本(copy) 而是真实的值 所以当我们调用函数ref_test($a)的时候已经改变了 $a 的值 所以最后 $a = ; reference function return value(引用函数的返回值) reference_function_return_value php

复制代码 代码如下: <?php function &increment() static $var = ; $var++; return $var; $a =& increment(); // increment(); // $a++; // increment(); // echo "a: $a";

   首先申明一个引用函数 在函数体内 申明一个静态变量 $var 可以保存增加的值 $a =& increment(); 这条语句是 变量$a 引用 函数increment() 的返回值 和前面的引用变量一样 你可以把increment()函数 看作是一个变量 这样就变为 $a = & $b; 所以increment() 和 $a 都指向同一个值 改变任何一个 都能改变同一个值 更多详细信息 对象 OOP

   Fatal error: Using $this when not in object context

  这个错误刚学 OOP 肯定容易出现 因为有个概念你没有真正理解 类的可访问性(accessible) 也可以说是作用域 你还可以认为是 个 中国人 在国外 他不属于哪个文化 他不讲外语(可能他知道点) 但是他无法通过自己跟老外沟通 因为他们不是在一个共同国度出生 那么错误是如何发生的呢?看下面的例子

复制代码 代码如下: <?php  class Trones      static public $fire = "I am fire ";       public $water = "I am water";      static function getFire( )          return $this >fire ; // wrong           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 >fire ; // Notice: Undefined property: Trones::$fire (base on defferent error setting) simple is error  echo Trones::$fire ;

  这个错误很经典 也很实用 先看 static 的定义

  Declaring class properties or methods as static makes them accessible without needing an instantiation of the class A property declared as static can not be accessed with an instantiated class object (though a static method can)

  翻译 定义一个类的属性或方法为静态时 可以使他们在不需要初始化一个类时就能直接访问 一个被定义为了静态的属性不能被类的对象用对象操作符访问* > * (可以通过静态的方法访问)

  例子说明 行 行 犯了同一个错误 第一个是用对象操作符来访问静态变量 你看看定义 $this 是一个伪变量 相当于 object 一个实例 你用对象操作符 > 访问就会报错

  同样你也不能用 静态操作符 :: 来访问一个公共变量 正确的访问应该是 行 行 一个是在类的定义里访问(self:: === Trones::) 一个是在类的外部访问

  对于继承类 以上的规则同样适合

   Fatal error: Call to private method

   最近有部连续剧很好看 叫权利的游戏 我们假设有 方人马 个国王 平民 龙女 他们三方人马在下面争夺最终的胜利 也就是王冠

  下面的故事还有一个标题 类的可见性(visibility) 你如果知道最终的答案 解释部分你可以略过了

复制代码 代码如下: <?php  class Trones      protected $fire = " fire ";      public $water = " water " ;      static private $trones  = "Trones";      protected function getFire( )          $this >fire ;           static public function TheDragenOfMather( )          return __METHOD__ " use " $this >getFire() " gets the " self::getTrones( ) ;           static public function getWater( )          return __METHOD__ ;           static private function getTrones( )          return  self::$trones ;         class Kings extends Trones      static function TheSevenKing( )          return __METHOD__ "gets the " self::getTrones( );         class People extends Trones      static function ThePeople( )          return __METHOD__ "gets the " self::getTrones( );         echo Kings::TheSevenKing( ) ;  echo Trones::TheDragenOfMather( ) ;  echo People::ThePeople( ) ;

   正确答案是 国征战 内斗 平民死伤无数 龙女想乘机渔翁得利 可惜 最终谁也没有得到皇冠和胜利 哈哈

  当static 碰到 private 结合产生复杂 也产生美 就像抽象的人 像我们大学老师讲的数学课 (不过网易的公开数学课很好)

  如果想要龙女 获得最后的胜利 你只要帮她一把 将 行的 $this >getFire() 这部分去掉就可以了 同样的道理 你无法在一个静态函数里 使用任何对象操作符

  怎么使人民获得王冠呢? 你去奋斗吧!

cha138/Article/program/Java/JSP/201311/20380

相关参考

知识大全 php对图像的各种处理函数代码小结

  一创建图片资源  imagecreatetruecolor(widthheight);imagecreatefromgif(图片名称);imagecreatefrompng(图片名称);image

知识大全 第一章小结

PHP典型模块与项目实战大全:第一章小结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &nbs

知识大全 .NET框架类小结

.NET框架类小结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一基本概念  NET框架(Fr

玉米新品种郑单958引种试验小结

2011年上杭县农技站引进郑单958新品种试种,并安排在太拔乡上村村邓屋塅进行郑单958与掖单13的品种简比试验。现将试验小结如下:  1、试验地基本情况:在太拔乡上村村邓屋塅种植,前作甘薯,沙壤土,

玉米新品种郑单958引种试验小结

2011年上杭县农技站引进郑单958新品种试种,并安排在太拔乡上村村邓屋塅进行郑单958与掖单13的品种简比试验。现将试验小结如下:  1、试验地基本情况:在太拔乡上村村邓屋塅种植,前作甘薯,沙壤土,

2014年玉米新品种试验小结

一、试验目的  通过试验进一步摸索出在当地具有适应性、丰产性、抗逆性的优良品种,为大面积推广提供科学依据。  二、供试品种及基本情况  1、对照(ck)路单8号;2、中禾606;3、中禾8号;4、桂单

2014年玉米新品种试验小结

一、试验目的  通过试验进一步摸索出在当地具有适应性、丰产性、抗逆性的优良品种,为大面积推广提供科学依据。  二、供试品种及基本情况  1、对照(ck)路单8号;2、中禾606;3、中禾8号;4、桂单

知识大全 php curl基本操作详解

怎么使用cURL的基本方法?首先修改phpini文件的设置找到php_curldll取消下在的注释extension=php_curldll因为php默认是不开启cURL的 复制代码代码如下

知识大全 PHP正则表达式基本函数

PHP正则表达式基本函数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在PHP正则表达式中需要

知识大全 关于PHP模板技术的基本概念

关于PHP模板技术的基本概念  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!如果你正在设计一个交互式