以C语言的思维代入反推语法尝试
数字字符变量测试
附 百度到了
// </br>和<br/>表示换行
测试代码如下
<?php
$a="双引号字符串";
$b='单引号?';
$c='m';
$d=5;
echo $a," - - ",$b,</br>,$c,'-'
?>
修改部分报错后结果如下:
双引号字符串 - - 单引号?
m-
发现问题
得出以下猜想/疑问
- 双引号和单引号似乎都可以表示字符串?
- 没有数字字符变量的区分,似乎是自动识别的
- 删除掉<?php?>也可以正常运行,不知道这段是做什么的
解决问题(查)
PHP中单双引号区别.
PHP中判断变量类型.
PHP中<?php?>相关.
收获
编译和查资料过程中总结出如下几项
- 每一行包括echo结尾都要加;
- 换行< b r / >同c中的/n一样属于字符输出需要在" "中
- 单引号中类似**$a**这样的引用变量会以字符形式输出,不会导入变量值
- 同c,输出特殊字符需要在之前加反斜杠\
- 读页面时先运行<?php?>内代码并将结果放在当前位置
综上3 4点,我进行了如下测试
<?php
echo '"a"',""a"","\"a\"";
?>
结果如下
’ " a " ’ => " a "
" " a " " =>报错
" \ " a \ " " =>" a "
markdown编写时< b r / >会自动改成换行显示绝了,不愧是html
全局变量和局部变量
附 查询测试得 < p >用法
// <p>和</p>为段落格式
// 此行后空,下空一行
测试代码如下
<?php
$a=0;
function Test(){
$b=10;
echo $a,"</p>",$b,"</p>";
}
Test();
echo $a,"</p>",$b,"</p>";
?>
输出结果
Notice: Undefined variable: b in c:xamppVhtdocsPHPceshi.php(6) : eval('d code on line 6
10
1
Notice: Undefined variable: a in C:xamppVhtdocsPHPceshi.php(6) : eval('d code on line 9
理解输出结果
1.命名在函数外的变量不是全局变量
2.局部变量不可扩展到函数外
3.函数外的变量暂时无法在函数内被调用
深入实验
代码段如下
<?php
$a=1;
function test()
{global $a;
$b=2;
echo $b,"</p>";
global $b;
echo $a,"</p>",$b,"</p>";
}
test();
echo $b,"</p>",$b,"</p>";
?>
输出结果
2
1
1
理解输出结果
1.函数外定义的变量,可以在函数内用global声明为全局并且使用
2.函数内定义的变量,无法在函数外使用
3.函数内声明的变量无法用global声明为全局在函数外使用,会被吞掉
查询资料
PHP中global与$GLOBAL[]的区别.
PHP中证明global的运作方式.
收获
- PHP中全局变量和C不同,函数中所谓的全局声明"global"所做的工作类似于创建一个新的变量(不是指针)
- 要想跨函数使用变量需要使用超全局变量"GLOBALS[]"
学习总结
- 编写语法方面需要多敲代码,熟能生巧,减少简单错误的发生
- 定义变量之前要想好作用在什么位置,以后会如何调用