在面向对象开发中:自动载入对象的方法__autoload()的过程中,出现如下问题:
文件new.php代码如下
<?php
function __autoload($name){
include("$name_25.php");
}
$p=new demo();
echo $p->fun1();
?>
而有demo_25.php文件待引入new.php文件中。
include函数中用include("$name_25.php")由于有$符号 ,系统会把$name_25当作文件名而出现不存在该文件的错误。
分析就是include中单双引号的问题,试了几个像include("'$name+_25'.php"),include("'$name'.'_25'.php")等都不行,
demo_25.php文件代码:<?php
class demo{
function fun1(){
echo "引用的demo类";
}
}
?>
有没大牛指点一下???????
文件new.php代码如下
<?php
function __autoload($name){
include("$name_25.php");
}
$p=new demo();
echo $p->fun1();
?>
而有demo_25.php文件待引入new.php文件中。
include函数中用include("$name_25.php")由于有$符号 ,系统会把$name_25当作文件名而出现不存在该文件的错误。
分析就是include中单双引号的问题,试了几个像include("'$name+_25'.php"),include("'$name'.'_25'.php")等都不行,
demo_25.php文件代码:<?php
class demo{
function fun1(){
echo "引用的demo类";
}
}
?>
有没大牛指点一下???????
单引号的情况include($name.'25.php');或include(''.$name.'25.php');
双引号的情况include($name."25.php");或include("".$name."25.php");
如果$name不是变量,是字串:
单引号的情况include('$name_25.php');
单引号的情况include("$name_25.php");
哦 果然大牛,问题搞定!再问个:
include("".$name."25.php")和include($name."25.php")有有啥不同呢?就是前面加个空格?
正确的写法是
include("{$name}_25.php");
//建议简化代码.
$fileName = $name."_25.php";
include($fileName);