好记性比不过乱笔头,记录成长路上的小问题。
1 print <<<EOF 中的数组输出
今天在做php168二次开发中用到html模板的print <<<EOF,发现一个问题。
$s=array(); $s['id']="test";
print <<<EOF
$s[‘id’];
EOF
运行出错!
改为 print <<<EOF
$s[id];
EOF
输出test
不是数组的key用‘’包含起来好点的吗,怎么用了还出错。搞不明白
二、PHP大小写敏感规则 1、 大小写敏感 a、 变量名区分大小写 b、 常量名默认区分大小写,通常都写为大写 c、 php.ini配置项指令区分大小写 2、大小写不敏感 函数名、方法名、类名 不区分大小写, 但推荐使用与定义时相同的名字 魔术常量不区分大小写,推荐大写 NULL、TRUE、FALSE不区分大小写 类型强制转换,不区分大小写
三 、php中的对象可以调用对象所在类得static方法
<?php
error_reporting(-1); function foobar($arg, $arg2) { echo __FUNCTION__, " got $arg and $arg2\n"; } class foo { var $name;
public function __construct() { //$this->name='default';
} static function bar($arg, $arg2) { echo __METHOD__, " got $arg and $arg2\n"; } }
// Call the foobar() function with 2 arguments call_user_func_array("foobar", array("one", "two"));
// Call the $foo->bar() method with 2 arguments $foo = new foo; call_user_func_array(array($foo, "bar"), array("three", "four"));
$foo->bar("three", "four"); 结果: foobar got one and two foo::bar got three and four foo::bar got three and four 结论:可以用对象调用静态方法($foo->bar) ?>
1
也可以用类名::对象方法调用,但是调用的方法中不能还有对象的成员参数 <?php
class foo { var $name;
public function __construct() { //$this->name='default';
} function bar($arg='参数1', $arg2='参数2') { echo __METHOD__, " got $arg and $arg2\n";//,$this->name; //如果这里不注释$this->name这条就会出错 Using $this when not in object context 因为在下面foo::bar()的时候没有这个$this } }
foo::bar(); 结果:foo::bar got 参数1 and 参数2
结论: 可以直接通过类名::成员方法(),只要方法内部没有用到对象的上下文 但是会出现php提示:Strict standards: Non-static method foo::bar() should not be called statically ?>
|
请发表评论