本文目录一览:
- 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程序设计有所帮助。