知识大全 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相关参考
一创建图片资源 imagecreatetruecolor(widthheight);imagecreatefromgif(图片名称);imagecreatefrompng(图片名称);image
PHP典型模块与项目实战大全:第一章小结 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
.NET框架类小结 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一基本概念 NET框架(Fr
2011年上杭县农技站引进郑单958新品种试种,并安排在太拔乡上村村邓屋塅进行郑单958与掖单13的品种简比试验。现将试验小结如下: 1、试验地基本情况:在太拔乡上村村邓屋塅种植,前作甘薯,沙壤土,
2011年上杭县农技站引进郑单958新品种试种,并安排在太拔乡上村村邓屋塅进行郑单958与掖单13的品种简比试验。现将试验小结如下: 1、试验地基本情况:在太拔乡上村村邓屋塅种植,前作甘薯,沙壤土,
一、试验目的 通过试验进一步摸索出在当地具有适应性、丰产性、抗逆性的优良品种,为大面积推广提供科学依据。 二、供试品种及基本情况 1、对照(ck)路单8号;2、中禾606;3、中禾8号;4、桂单
一、试验目的 通过试验进一步摸索出在当地具有适应性、丰产性、抗逆性的优良品种,为大面积推广提供科学依据。 二、供试品种及基本情况 1、对照(ck)路单8号;2、中禾606;3、中禾8号;4、桂单
怎么使用cURL的基本方法?首先修改phpini文件的设置找到php_curldll取消下在的注释extension=php_curldll因为php默认是不开启cURL的 复制代码代码如下
PHP正则表达式基本函数 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在PHP正则表达式中需要
关于PHP模板技术的基本概念 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!如果你正在设计一个交互式