本文目錄一覽:
- 1、stat failed for 怎麼回事
- 2、怎麼樣在php配置中加載魔術常量
- 3、php 打印當前執行到的行數–為方便調試
- 4、php中的_LINE_與_FILE_分別代表什麼意思
- 5、PHP中魔術變量__METHOD__與__FUNCTION__的區別
stat failed for 怎麼回事
你的錯誤都是由於第一個錯誤引起的,所以後面可以先忽略。
這個錯誤產生的原因就是你的PHP找不到mode.htm這個文件的位置,你可以為該文件增加路徑描述解決這個問題。
當前的文件在PHP中可以用魔術變量__FILE__表示,因此,你的當前目錄為dirname(__FILE__)
怎麼樣在php配置中加載魔術常量
PHP中,有不少很好用的魔術變量,用好之,能事半功倍,下面小結之:
1 _LINE_
顯示當前代碼的行數:
echo “This is line number : “. __LINE__;
2 _FILE_
顯示當前文件的路徑
3 _METHOD_
顯示當前方法的名,比如
class Magicconstant
{
function __construct()
{
echo “This is function a”;
}
function b()
{
echo “br/”;
echo “This is function b”;
echo “br/”;
echo __METHOD__;
}
}
$cm = new Magicconstant();
$cm-b();
顯示
This is function a
This is function b
Magicconstant::b
4 _FUNCTION_
顯示當前所在函數的名
function b()
{
echo “br/”;
echo “This is function b”;
echo “br/”;
echo __FUNCTION__;
}
輸出:
This is function b
Magicconstant::b
5 _DIR_
顯示當前目錄名,如
echo “The directory name is : “. __DIR__;
輸出:
The directory name is : D:\wamp\www
6 _CLASS_
顯示當前的類
class Magicconstant
{
function __construct()
{
echo “The class name is : “.__CLASS__;
}
}
$cm = new Magicconstant();
顯示:
The class name is : Magicconstant
7 _NAMESPACE_
顯示當前命名空間
namespace MagicConstant
{
echo “The namespace is : “.__NAMESPACE__;
}
輸出:
The namespace is : MagicConstant
8 _sleep_
_sleep_用在將類序列化之前,
?php
class User
{
public $userName = ”;
public $userAddress = ”;
public $userPhone = ”;
public function setName($name=”)
{
$this-userName = $name;
}
function setAddress($address=”)
{
$this-userAddress = $address;
}
function setPhone($phone=”)
{
$this-userPhone = $phone;
}
function __sleep()
{
return array(‘userAddress’,’userPhone’);
// This will serialize only address and Phone number but not Name
}
}
?
?php
$User = new User();
$User-setName(‘Avinash’);
$User-setAddress(‘Address Here’);
$User-setPhone(‘1234567890’);
$serialData = serialize($User);
echo $serialData;
?
OutPut: O:4:”User”:2:{s:11:”userAddress”;s:12:”Address Here”;s:9:”userPhone”;s:10:”1234567890″;}
程序運行時, serialize() 檢查類中是否有 __sleep() ,如果有,則該函數將在任何序列化之前運行. 該函數必須返回一個需要進行序列化保存的成員屬性數組,並且只序列化該函數返回的這些成員屬性. 該函數有兩個作用: 第一. 在序列化之前,關閉對象可能具有的任何數據庫連接等. 第二. 指定對象中需要被序列化的成員屬性,如果某個屬性比較大而不需要儲存下來,可以不把它寫進__sleep()要返回的數組中,這樣該屬性就不會被序列化
又如:
class Test {
public $mySecret; //我的秘密不想讓人知道
public function __construct($secret) {
$this-mySecret = $secret;
}
public function __sleep() {
$this-mySecret = “你休想知道我的秘密!”;
return array(‘mySecret’); //一定要返回變量,不然返回的是個空,所以序列化也就沒有東西了。
}
}
$test = new Test(“我的心裡話 我愛某某某”);
echo serialize($test); //輸出 O:4:”Test”:1:{s:8:”mySecret”;s:28:”你休想知道我的秘密!”;}
_wakeup_
用在反序列化時:
?php
class User
{
public $userName = ”;
public $userAddress = ”;
public $userPhone = ”;
public function setName($name=”)
{
$this-userName = $name;
}
function setAddress($address=”)
{
$this-userAddress = $address;
}
function setPhone($phone=”)
{
$this-userPhone = $phone;
}
function __sleep()
{
return array(‘userAddress’,’userPhone’);
// This will serialize only address and Phone number but not Name
}
function __wakeup()
{
echo “In Wakeup function”.”br/”;
}
}
?
?php
$User = new User();
$User-setName(‘Avinash’);
$User-setAddress(‘Address Here’);
$User-setPhone(‘1234567890’);
$serialData = serialize($User);
echo $serialData;
echo “br/”;
var_dump(unserialize($serialData));
?
Output:
In Wakeup function
object(User)#2 (3) {
[“userName”]=
string(0) “”
[“userAddress”]=
string(12) “Address Here”
[“userPhone”]=
string(10) “1234567890”
}
//以上信息轉自 不代表個人觀點 僅供參考 若滿意 請採納本答案
php 打印當前執行到的行數–為方便調試
echo ‘__LINE__’;魔術變量之__LINE__記錄了當前執行的代碼所在行的行號。
PHP有不少能夠用來直接調試的函數,查看變量、對象、數組、Everything……
下面是魔術變量
__LINE__ 文件中的當前行號。
__FILE__ 文件的完整路徑和文件名。如果用在被包含文件中,則返回被包含的文件名。自 PHP 4.0.2 起,__FILE__ 總是包含一個絕對路徑(如果是符號連接,則是解析後的絕對路徑),而在此之前的版本有時會包含一個相對路徑。
__DIR__ 文件所在的目錄。如果用在被包括文件中,則返回被包括的文件所在的目錄。它等價於dirname(__FILE__)。除非是根目錄,否則目錄中名不包括末尾的斜杠。(PHP 5.3.0中新增) =
__FUNCTION__ 函數名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該函數被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。
__CLASS__ 類的名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該類被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。
__METHOD__ 類的方法名(PHP 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)。
__NAMESPACE__ 當前命名空間的名稱(大小寫敏感)。這個常量是在編譯時定義的(PHP 5.3.0 新增)
php中的_LINE_與_FILE_分別代表什麼意思
這兩個常量。分別是當前文件的行數和文件名(含路徑)。。
寫在哪個 PHP 文件里。就只對這個文件有效。。不管有沒有被別的程序 include 。。
例如:
//a.php
echo __FILE__;
//b.php
include(“a.php”);
運行 b.php 結果還是 a.php。因為 __FILE__ 寫在那裡,而不是在 b.php 里。
PHP中魔術變量__METHOD__與__FUNCTION__的區別
本文實例講述了PHP中魔術變量__METHOD__與__FUNCTION__的區別,分享給大家供大家參考。具體分析如下:
__METHOD__類的方法名(PHP
5.0.0
新加)。返回該方法被定義時的名字(區分大小寫)。
__FUNCTION__函數名稱(PHP
4.3.0
新加)。自
PHP
5
起本常量返回該函數被定義時的名字(區分大小寫)。在
PHP
4
中該值總是小寫字母的。
文檔解釋都是說返回函數(方法)的名字。區別在於:
__FUNCTION__只是返回方法的名字;
__METHOD__返回類的名字和方法的名字。
?php
class
Test{
public
function
doit(){
echo
__FUNCTION__;
}
public
function
doitAgain(){
echo
__METHOD__;
}
}
$obj
=
new
Test();
$obj-doit();
echo
‘br’;
$obj-doitAgain();
?
輸出結果為:
doit
Test::doitAgain
希望本文所述對大家的PHP程序設計有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/196107.html