summaryrefslogtreecommitdiffstats
path: root/user_guide_src/source/general/alternative_php.rst
blob: 418d2e6eb4eff010a1fb9bb06aa2e7e65b8c9a44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
###################################
Alternate PHP Syntax for View Files
###################################

If you do not utilize CodeIgniter's :doc:`template
engine <../libraries/parser>`, you'll be using pure PHP in your
View files. To minimize the PHP code in these files, and to make it
easier to identify the code blocks it is recommended that you use PHPs
alternative syntax for control structures and short tag echo statements.
If you are not familiar with this syntax, it allows you to eliminate the
braces from your code, and eliminate "echo" statements.

Automatic Short Tag Support
===========================

.. note:: If you find that the syntax described in this page does not
	work on your server it might be that "short tags" are disabled in your
	PHP ini file. CodeIgniter will optionally rewrite short tags on-the-fly,
	allowing you to use that syntax even if your server doesn't support it.
	This feature can be enabled in your *config/config.php* file.

Please note that if you do use this feature, if PHP errors are
encountered in your **view files**, the error message and line number
will not be accurately shown. Instead, all errors will be shown as
``eval()`` errors.

Alternative Echos
=================

Normally to echo, or print out a variable you would do this::

	<?php echo $variable; ?>

With the alternative syntax you can instead do it this way::

	<?=$variable?>

Alternative Control Structures
==============================

Controls structures, like if, for, foreach, and while can be written in
a simplified format as well. Here is an example using ``foreach``::

	<ul>

	<?php foreach ($todo as $item): ?>

		<li><?=$item?></li>

	<?php endforeach; ?>

	</ul>

Notice that there are no braces. Instead, the end brace is replaced with
``endforeach``. Each of the control structures listed above has a similar
closing syntax: ``endif``, ``endfor``, ``endforeach``, and ``endwhile``

Also notice that instead of using a semicolon after each structure
(except the last one), there is a colon. This is important!

Here is another example, using ``if``/``elseif``/``else``. Notice the colons::

	<?php if ($username === 'sally'): ?>

		<h3>Hi Sally</h3>

	<?php elseif ($username === 'joe'): ?>

		<h3>Hi Joe</h3>

	<?php else: ?>

		<h3>Hi unknown user</h3>

	<?php endif; ?>